/* $Id: multirow.js,v 1.1.2.6 2006/07/19 12:15:13 max Exp $ */

var multirowInputSets = {};
var cntBadges = 1;

/*
	Add new row (first row onclick event handler)
*/
function add_inputset(name, obj, isLined) {

	if (!name)
		return false;

	var buttonTD = obj;
    while (buttonTD.tagName.toUpperCase() != 'TD' && buttonTD.parentNode)
        buttonTD = buttonTD.parentNode;

	if (buttonTD.tagName.toUpperCase() != 'TD')
		return false;

	if (!buttonTD.inheritedRows) {
		buttonTD.inheritedRows = [];
	}

	buttonTD.isLined = isLined;

	return add_inputset_row(name, buttonTD, buttonTD.parentNode);
}

/*
	Add new row
*/
function add_inputset_row(name, buttonTD, lastTR) {

	var regexp = new RegExp('^'+name+'_box', 'ig');
	var str = '';

	/* Get last cloned row */
	var maxI = -1;
	if (buttonTD.inheritedRows.length > 0) {
		for (var i in buttonTD.inheritedRows) {
			maxI = i;
		}
	}

	if (name == "blank") {
		maxI = max_bl-1;
	}
	if (name == "txt") {
		maxI = max_txt-1;
	}

	if (!lastTR)
		lastTR = (maxI >= 0) ? buttonTD.inheritedRows[maxI] : buttonTD.parentNode;
	if (name == "blank" || name=="txt") {
		lastTR = buttonTD.parentNode;
	}

	var origTable = lastTR.parentNode.parentNode;
	var origTR = lastTR;

	/* Clone row */
	maxI++;
	lastTR = origTable.insertRow(lastTR.rowIndex+1);
	buttonTD.inheritedRows[maxI] = lastTR;

	/* Copy row attributes */
	for (var x = 0; x < origTR.attributes.length; x++) {
		if(!origTR.attributes[x].specified)
			continue;
		var newAttr = document.createAttribute(origTR.attributes[x].name);
		newAttr.value = origTR.attributes[x].value
		lastTR.attributes.setNamedItem(newAttr);
	}

	lastTR.buttonTD = buttonTD;
	lastTR.mark = name;
	lastTR.inheritedRowIndex = maxI;
	lastTR.cssText = origTR.cssText;

	for (var x = 0; x < origTR.cells.length; x++) {
		if (origTR.cells[x].id.search(regexp) == -1)
			continue;

		/* Clone cell */
		var curTD = lastTR.appendChild(origTR.cells[x].cloneNode(true));
		curTD.id = name+'_box_'+x+'_'+lastTR.inheritedRowIndex;

		/* Change clone element name (in clone cell) */
		for (var y = 0; y < curTD.childNodes.length; y++) {
			var elm = curTD.childNodes[y];
			if (!elm.tagName)
				continue;

			var tName = elm.tagName.toUpperCase();
			if (tName == 'INPUT' || tName == 'SELECT' || tName == 'TEXTAREA') {
				if (elm.name.search(/\[\]$/) != -1) {
					elm.name = elm.name.replace(/\[[0-9]+\]\[\]$/, '['+(lastTR.inheritedRowIndex+1)+'][]');
					elm.id = elm.name.replace(/\[[0-9]+\]\[\]$/, '['+(lastTR.inheritedRowIndex+1)+'][]');
				} else {
					elm.name = elm.name.replace(/\[[0-9]+\]$/, '['+(lastTR.inheritedRowIndex+1)+']');
					elm.id = elm.name.replace(/\[[0-9]+\]$/, '['+(lastTR.inheritedRowIndex+1)+']');
				}
				//elm.id = elm.id.replace(/_[0-9]+$/, '_'+(lastTR.inheritedRowIndex+1));
				str = elm.name;

				   //elm.value="";
				   val = elm.value

				/* Clear cloned element content if noCloneContent option is enabled for this multirow inputset */
				if (multirowInputSets[name] && multirowInputSets[name].noCloneContent) {
					if ((tName == 'INPUT' && elm.type == 'text') || tName == 'TEXTAREA')
						//elm.value = '';
				val=	elm.value;
				}
			}
		}
	}

	/* Add service cell (with + / - buttons) */
	curTD = lastTR.insertCell(-1);
	count_index=lastTR.inheritedRowIndex+1;

	curTD.noWrap = true;
	if (!window.lbl_remove_row)
		lbl_remove_row = "<img src='skin1/images/minus2.gif'>";
	if (!window.lbl_add_row)
		lbl_add_row = "&nbsp;<img src='skin1/images/add.gif'>";

	//set quantity in upper most as blank
	document.getElementById("blank[amount][0]").value="";
if(str != "blank[fixing]["+count_index+"]")
	{

	if (document.getElementById("new_list[text1][0]")) {
	param="new_list[text1]["+count_index+"]";
	param2="new_list[text2]["+count_index+"]";
	param3="new_list[fixing]["+count_index+"]";

	document.getElementById(param).value = document.getElementById("new_list[text1][0]").value;
	document.getElementById("new_list[text1][0]").value="";
	document.getElementById(param2).value = document.getElementById("new_list[text2][0]").value;
	document.getElementById("new_list[text2][0]").value="";

	document.getElementById(param3).value = document.getElementById("new_list[fixing][0]").value;
	document.getElementById("new_list[fixing][0]").value=val-0;
	}
	if(window.sizing_classid){
		if (document.getElementById("blank[po"+sizing_classid+"][0]")) {
		opts_fixing='';
		opts_fixing1='';
		opts_sizes='';
		param="blank[product_options]["+sizing_classid+"]["+count_index+"]";
		param2="blank[product_options]["+fixing_classid+"]["+count_index+"]";
		param3="blank[product_options]["+(fixing_classid+1)+"]["+count_index+"]";

		var sizeStr =eval("option_ids_"+sizing_classid);
		var sizeoptionsStr =eval("option_values_"+sizing_classid);
		var size_ids = sizeStr.split(",");
		var fixing_ids = sizeoptionsStr.split(",");
		var cnt = size_ids.length;
		for(var kl = 0;kl<cnt-1;kl++)
		{
			opts_sizes+='<option value="'+size_ids[kl]+'">'+fixing_ids[kl]+'</option>';
		}
		if(fixing_classid!=0){
			/*var fixingStr =eval("option_ids_"+fixing_classid);
			var size_ids = fixingStr.split(",");
			var cnt = size_ids.length;
			for(var k = 0;k<cnt-1;k++)
			{
				opts_fixing+='<option value="'+size_ids[k]+'">'+fixing_ids[k]+'</option>';
			}
			var fixingOptionStr =eval("option_values_"+fixing_classid);
			var fixing_ids = fixingOptionStr.split(",");
			*/
			var fixingStr =eval("option_ids_"+fixing_classid);
			var sizeoptionsStr =eval("option_values_"+fixing_classid);
			var size_ids = fixingStr.split(",");
			var fixing_ids = sizeoptionsStr.split(",");
			var cnt = size_ids.length;
			for(var kl = 0;kl<cnt-1;kl++)
			{
				opts_fixing+='<option value="'+size_ids[kl]+'">'+fixing_ids[kl]+'</option>';
			}
			try{
				var fixingStr1 =eval("option_ids_"+(fixing_classid+1));
				var sizeoptionsStr1 =eval("option_values_"+(fixing_classid+1));
				var size_ids1 = fixingStr1.split(",");
				var fixing_ids1 = sizeoptionsStr1.split(",");
				var cnt = size_ids1.length;
				for(var kl = 0;kl<cnt-1;kl++)
				{
					opts_fixing1+='<option value="'+size_ids1[kl]+'">'+fixing_ids1[kl]+'</option>';
				}
			}catch(ex){
				//alert(ex);
			}

		}
		//alert(opts_sizes+"===="+opts_fixing);
		//var opts_fixing = '';


		//alert(names);
		document.getElementById(param).value = document.getElementById("blank[po"+sizing_classid+"][0]").value;
		//document.getElementById("blank[po"+sizing_classid+"][0]").innerHTML=opts_sizes;
		select_innerHTML(document.getElementById("blank[po"+sizing_classid+"][0]"),opts_sizes);


		if(fixing_classid!=0){
			//document.getElementById("blank[po"+fixing_classid+"][0]").value=size_ids[fixingStr.split(",").length-2];
			document.getElementById(param2).value = document.getElementById("blank[po"+fixing_classid+"][0]").value;
			//document.getElementById("blank[po"+fixing_classid+"][0]").innerHTML=opts_fixing;
			select_innerHTML(document.getElementById("blank[po"+fixing_classid+"][0]"),opts_fixing);
			if(opts_fixing1!=''){
				document.getElementById(param3).value = document.getElementById("blank[po"+(fixing_classid+1)+"][0]").value;
				select_innerHTML(document.getElementById("blank[po"+(fixing_classid+1)+"][0]"),opts_fixing1);
			}
		}

		}
	}
	if (window.inputset_plus_img && window.inputset_minus_img){
		curTD.innerHTML = '&nbsp;<a href="javascript: void(0);" onclick="javascript: remove_inputset(this);"><img src="'+inputset_minus_img+'" alt="'+lbl_remove_row+'" /></a><INPUT TYPE="hidden" name="count_index[]" id="count_index[]" value="'+count_index+'">';
	}else{
		curTD.innerHTML = '&nbsp;<a href="javascript: void(0);" onclick="javascript: remove_inputset(this);">'+lbl_remove_row+'</a><INPUT TYPE="hidden" name="count_index[]" id="count_index[]" value="'+count_index+'">';
		var start = new Date().getTime();
		while (new Date().getTime() < start + 500);
		//alert("settig image ="+lbl_remove_row);
	}

	}
if(str == "blank[fixing]["+count_index+"]")
	{
		//document.getElementById("blank[amount]["+count_index+"]").value  = document.getElementById("blank[amount][0]").value;
		document.getElementById("blank[amount][0]").value="0";
		// if condition added by sameer
		if (document.getElementById("blank[size]["+count_index+"]")) {
			document.getElementById("blank[size]["+count_index+"]").value  = document.getElementById("blank[size][0]").value;
			document.getElementById("blank[size][0]").selectedIndex=0;
		}

		if (document.getElementById("blank[fixing]["+count_index+"]")) {
			document.getElementById("blank[fixing]["+count_index+"]").value  = document.getElementById("blank[fixing][0]").value;
			document.getElementById("blank[fixing][0]").value=val-0;
		}
	if (window.inputset_plus_img && window.inputset_minus_img){
		curTD.innerHTML = '&nbsp;<a href="javascript: void(0);" onclick="javascript: remove_inputset(this);"><img src="'+inputset_minus_img+'" alt="'+lbl_remove_row+'" /></a><input type="hidden" name="count_field_row[]" id="count_field_row[]" value="'+count_index+'"/>';
	}else{
		curTD.innerHTML = '&nbsp;<a href="javascript: void(0);" onclick="javascript: remove_inputset(this);" >'+lbl_remove_row+'</a><input type="hidden" name="count_field_row[]" id="count_field_row[]" value="'+count_index+'"/>';
		var start = new Date().getTime();
		while (new Date().getTime() < start + 500);
	}
	}

/*if (window.inputset_plus_img && window.inputset_minus_img)
		curTD.innerHTML = '<a href="javascript: void(0);" onclick="javascript: add_inputset_subrow(this);"><img src="'+inputset_plus_img+'" alt="'+lbl_add_row+'" /></a>&nbsp;&nbsp;<a href="javascript: void(0);" onclick="javascript: remove_inputset(this);"><img src="'+inputset_minus_img+'" alt="'+lbl_remove_row+'" /></a>';
	else
		curTD.innerHTML = '<a href="javascript: void(0);" onclick="javascript: add_inputset_subrow(this);">'+lbl_add_row+'</a>&nbsp;&nbsp;<a href="javascript: void(0);" onclick="javascript: remove_inputset(this);if (remove_row_event)remove_row_event();">'+lbl_remove_row+'</a>';

*/
	lined_inputset(buttonTD);

	if (document.getElementById("TotalBadges"))
	{
		//update_amount_2();
		update_amount();

	}


	if (name == "blank") {
		max_bl++;
	}
	if (name == "txt") {
		max_txt++;
	}

	return lastTR;
}

/*
	Add new row (onclick event handler)
*/
function add_inputset_subrow(tr) {
    while (tr.tagName.toUpperCase() != 'TR' && tr.parentNode)
        tr = tr.parentNode;

	if (tr.tagName.toUpperCase() != 'TR')
		return false;

	add_inputset_row(tr.mark, tr.buttonTD, tr);
}

/*
	Remove row from rows set
*/
function remove_inputset(tr) {

	while (tr.tagName.toUpperCase() != 'TR' && tr.parentNode)
		tr = tr.parentNode;

	if (tr.tagName.toUpperCase() != 'TR')
		return false;

	if (!tr.buttonTD.inheritedRows[tr.inheritedRowIndex])
		return false;

	tr.parentNode.parentNode.deleteRow(tr.rowIndex);
	lined_inputset(tr.buttonTD);
	tr.buttonTD.inheritedRows[tr.inheritedRowIndex] = null;
	delete tr;

	if (document.getElementById("TotalBadges"))
	{
		//update_amount_2();
		update_amount();

	}

	return true;
}

/*
	Display rows set as lined
*/
function lined_inputset(buttonTD) {
	if (!buttonTD.isLined || buttonTD.inheritedRows.length == 0)
		return false;

	var origTable = buttonTD;
	while (origTable.tagName.toUpperCase() != 'TABLE' && origTable.parentNode)
		origTable = origTable.parentNode;

	if (origTable.tagName.toUpperCase() != 'TABLE')
		return false;

	var maxRowIndex = buttonTD.parentNode.rowIndex;
	for (var i in buttonTD.inheritedRows) {
		if (buttonTD.inheritedRows[i] && maxRowIndex < buttonTD.inheritedRows[i].rowIndex)
			maxRowIndex = buttonTD.inheritedRows[i].rowIndex;
	}

	var flag = true;
	for (var i = 0; i < origTable.rows.length; i++) {
		if (origTable.rows[i].rowIndex > buttonTD.parentNode.rowIndex && origTable.rows[i].rowIndex <= maxRowIndex) {
			origTable.rows[i].className = flag ? 'TableSubHead' : '';
			flag = !flag;
		}
	}
}

/*
	Add row with preset data
*/
function add_inputset_preset(name, obj, isLined, preset) {
	var tr = add_inputset(name, obj, isLined);
	if (!tr)
		return false;

	for (var p = 0; p < preset.length; p++) {
		var elm = false;
		for (var i = 0; i < tr.cells.length && !elm; i++) {

			/* Get element */
			var elm = add_inputset_search_element(tr.cells[i], preset[p].regExp);
			if (!elm)
				continue;

			var tName = elm.tagName.toUpperCase();
			if (tName == 'INPUT' && (elm.type == 'text' || elm.type == 'hidden')) {
				elm.value = preset[p].value;

			} else if (tName == 'INPUT' && elm.type == 'checkbox') {
				elm.checked = preset[p].value;

			} else if (tName == 'INPUT' && elm.type == 'radio') {
				var elms = elm.form.elements[elm.name];
				if (elms) {
					for (var y = 0; y < elms.length; y++)
						elms[y].checked =  (elms[y].value == preset[p].value);
				}

			} else if (tName == 'SELECT') {
				for (var y = 0; y < elm.options.length; y++)
					if (elm.options[y].value == preset[p].value) {
						elm.options[y].selected = true;
						break;
					}

			} else if (tName == 'TEXTAREA') {
				elm.value = preset[p].value;
			}

		}
	}
}

/*
	Search element by name (RegExp) recursive
*/
function add_inputset_search_element(parent, regExp) {
	if (parent.childNodes.length == 0)
		return false;

	for (var i = 0; i < parent.childNodes.length; i++) {
		if (!parent.childNodes[i].tagName || !parent.childNodes[i].name)
			continue;

		var tName = parent.childNodes[i].tagName.toUpperCase();
		if ((tName == 'INPUT' || tName == 'SELECT' || tName == 'TEXTAREA') && parent.childNodes[i].name.search(regExp) != -1) {
			return parent.childNodes[i];
		}

		if (parent.childNodes[i].parentChilds && parent.childNodes[i].parentChilds.length > 0) {
			var r = add_inputset_search_element(parent.childNodes[i], regExp);
			if (r)
				return r;
		}
	}

	return false;
}


function remove_inputset_pref(tr) {

	while (tr.tagName.toUpperCase() != 'TR' && tr.parentNode)
		tr = tr.parentNode;

	if (tr.tagName.toUpperCase() != 'TR')
		return false;

//	if (!tr.buttonTD.inheritedRows[tr.inheritedRowIndex])
//		return false;

	tr.parentNode.parentNode.deleteRow(tr.rowIndex);
//	lined_inputset(tr.buttonTD);
//	tr.buttonTD.inheritedRows[tr.inheritedRowIndex] = null;
	delete tr;

	if (document.getElementById("TotalBadges")) update_amount();

	return true;
}

function add_inputset_pref(name, obj, isLined) {

	if (!name)
		return false;

	var buttonTD = obj;
    while (buttonTD.tagName.toUpperCase() != 'TD' && buttonTD.parentNode)
        buttonTD = buttonTD.parentNode;

	if (buttonTD.tagName.toUpperCase() != 'TD')
		return false;

	if (!buttonTD.inheritedRows) {
		buttonTD.inheritedRows = [];
	}

	buttonTD.isLined = isLined;

	tmp = add_inputset_row(name, buttonTD, buttonTD.parentNode);
	update_amount();
	return tmp;
}

//make ajax call to populate the product options
function getXMLHttp()
{
  var xmlHttp

  try
  {
    //Firefox, Opera 8.0+, Safari
    xmlHttp = new XMLHttpRequest();
  }
  catch(e)
  {
    //Internet Explorer
    try
    {
      xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch(e)
    {
      try
      {
        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
      }
      catch(e)
      {
        alert("Your browser does not support AJAX!")
        return false;
      }
    }
  }
  return xmlHttp;
}

function getFixingOptions(thisObj,productId,prodId)
{
	if (productId == fixing_classid) {

		selName = thisObj.name;
		splitArr = selName.split("[");
		splitRestArr = splitArr[3].split("]");
		//blank[product_options][1150][0];

	  var xmlHttp = getXMLHttp();

	  xmlHttp.onreadystatechange = function()
	  {
		if(xmlHttp.readyState == 4)
		{
		  HandleResponse(xmlHttp.responseText,sizing_classid,splitRestArr[0]);
		}
	  }
	  url = "size_options_ajax.php?productid="+prodId+"&fixingid="+thisObj.value;
		//alert(url);return false;
	  xmlHttp.open("GET",url , true);
	  xmlHttp.send(null);

	}
	else
	{
	selName = thisObj.name;
	splitArr = selName.split("[");
	splitRestArr = splitArr[3].split("]");

	//alert(thisObj.value);return false;

  var xmlHttp = getXMLHttp();

  xmlHttp.onreadystatechange = function()
  {
    if(xmlHttp.readyState == 4)
    {
		if(fixing_classid!=0)
      HandleResponse(xmlHttp.responseText,fixing_classid,splitRestArr[0]);
    }
  }
  url = "product_options_ajax.php?productid="+prodId+"&sizeid="+thisObj.value;

  xmlHttp.open("GET",url , true);
  xmlHttp.send(null);
	}
}
//select object dose not support innerHTML - microsoft bug of InnerHTML in IE
//KB Article http://support.microsoft.com/kb/276228
//added by S
function select_innerHTML(objeto,innerHTML){
    objeto.innerHTML = ""
    var selTemp = document.createElement("micoxselect")
    var opt;
    selTemp.id="micoxselect1"
    document.body.appendChild(selTemp)
    selTemp = document.getElementById("micoxselect1")
    selTemp.style.display="none"
    if(innerHTML.toLowerCase().indexOf("<option")<0){
        innerHTML = "<option>" + innerHTML + "</option>"
    }
    innerHTML = innerHTML.toLowerCase().replace(/<option/g,"<span").replace(/<\/option/g,"</span")
    selTemp.innerHTML = innerHTML


    for(var i=0;i<selTemp.childNodes.length;i++){
  var spantemp = selTemp.childNodes[i];

        if(spantemp.tagName){
            opt = document.createElement("OPTION")

   if(document.all){ //IE
    objeto.add(opt)
   }else{
    objeto.appendChild(opt)
   }

   //getting attributes
   for(var j=0; j<spantemp.attributes.length ; j++){
    var attrName = spantemp.attributes[j].nodeName;
    var attrVal = spantemp.attributes[j].nodeValue;
    if(attrVal){
     try{
      opt.setAttribute(attrName,attrVal);
      opt.setAttributeNode(spantemp.attributes[j].cloneNode(true));
     }catch(e){}
    }
   }
   //getting styles
   if(spantemp.style){
    for(var y in spantemp.style){
     try{opt.style[y] = spantemp.style[y];}catch(e){}
    }
   }
   //value and text
   opt.value = spantemp.getAttribute("value")
   opt.text = spantemp.innerHTML
   //IE
   opt.selected = spantemp.getAttribute('selected');
   opt.className = spantemp.className;
  }
 }
 document.body.removeChild(selTemp)
 selTemp = null
}
function HandleResponse(response,optionId,selectBoxNum)
{
	if (document.getElementById('blank[po'+optionId+']['+selectBoxNum+']')) {
	  //document.getElementById('blank[po'+optionId+']['+selectBoxNum+']').innerHTML = response;
	  select_innerHTML(document.getElementById('blank[po'+optionId+']['+selectBoxNum+']'),response);
	} else {
	  //document.getElementById('blank[product_options]['+optionId+']['+selectBoxNum+']').innerHTML = response;
	  select_innerHTML(document.getElementById('blank[product_options]['+optionId+']['+selectBoxNum+']'),response);
	}
  //alert(response);
}

