/*#############################################################
Name: Niceforms
Version: 0.9
Author: Lucian Slatineanu
URL: http://www.badboy.ro/

Feel free to use and modify but please provide credits.
#############################################################*/

//global variables that can be used by all the functions on this page.
var selects;
var inputs;
var radios = new Array();
var checkboxes = new Array();
var hovers = new Array();
var buttons = new Array();
var selectText = "please select";

//this function runs when the page is loaded so put all your other onload stuff in here too.
function init() {
  
  //check if styles are enabled and only then start replacing elements
  //if(document.getElementById('stylesheetTest').offsetLeft == -999) {
    replaceRadios();
  //}
}

function replaceRadios() {
  //get all the radio buttons on the page
  var inputs = document.getElementsByTagName('input');
  var j = 0;
  for(var i=0; i < inputs.length; i++) {
    if(inputs[i].type=='radio' && inputs[i].name.indexOf('id[') == -1 && inputs[i].name.indexOf('id_qty[') == -1) {
      radios[j] = inputs[i];
      ++j;
    }
  }
  
  //cycle through the radio inputs
  for(var i=0; i <radios.length; i++) {
    
    //make them transparent
    radios[i].className = "transparent";
    
    //get their position
    
    var x = findPosX(radios[i]);
    var y = findPosY(radios[i]);
    
    //build new div
    var radioArea = document.createElement('div');
    if(radios[i].checked) {radios[i].nextSibling.className = "chosen"; radioArea.className = "radioAreaChecked";}
    else if(!radios[i].checked) {radioArea.className = "radioAreaUnchecked";}
    radioArea.style.left = x + 'px';
    radioArea.style.top = y + 'px';
    radioArea.id = 'myRadio'+i;
    radioArea.onclick = new Function('checkRadioDiv('+i+')');

    if(radios[i].onclick != null) {
      radios[i].oldOnclick = radios[i].onclick;
      radios[i].i = i;
      radios[i].onclick = function(e) {
        this.oldOnclick(e);
        checkRadio(this.i);
      };
    }
    else
      radios[i].onclick = new Function('checkRadio('+i+')');
    
    if(radios[i].style.display == 'none') radioArea.style.display = 'none';

    //insert div
    document.getElementsByTagName("div")[0].appendChild(radioArea);
  }
}

function findPosY(obj) {
  var posTop = 0;
  while (obj.offsetParent) {
    posTop += obj.offsetTop;
    obj = obj.offsetParent;
  }
  return posTop;
}
function findPosX(obj) {
  var posLeft = 0;
  while (obj.offsetParent) {
    posLeft += obj.offsetLeft;
    obj = obj.offsetParent;
  }
  return posLeft;
}

function checkRadioDiv(g) {
  if (!radios[g].checked) radios[g].checked = true;
  radios[g].onclick();
}

function checkRadio(g) {
  if(radios[g].checked) {
    for (var k = 0; k < radios.length; k++) {
      if (radios[g].name != radios[k].name) continue;
      if(k != g) {
        document.getElementById('myRadio'+k).className = "radioAreaUnchecked";
        radios[k].nextSibling.className = "";
      }
      else if(k == g) {
        document.getElementById('myRadio'+k).className = "radioAreaChecked";
        radios[g].nextSibling.className = "chosen";
      }
    }
  }
  else if(!radios[g].checked) {document.getElementById('myRadio'+g).className = "radioAreaUnchecked"; radios[g].nextSibling.className = "";}
}

function checkCheck(g) {
  if(checkboxes[g].checked) {
    for(var k = 0; k < checkboxes.length; k++) {
      if(k == g) {
        document.getElementById('myCheck'+k).className = "checkboxAreaChecked";
        checkboxes[g].nextSibling.className = "chosen";
      }
    }
  }
  else if(!checkboxes[g].checked) {
    document.getElementById('myCheck'+g).className = "checkboxAreaUnchecked";
    checkboxes[g].nextSibling.className = "";
  }
}

if(window.onload != null) {
  window.oldOnloadNiceforms = window.onload;
  window.onload = function(e) {
    this.oldOnloadNiceforms(e);
    init();
  };
}
else
  window.onload=init;

