var Giftee_Parent;
var giftee_div_name = "gift_elements";
var counter = 0;
var dataArray = new Array(counter);
var tmpdataArray = new Array(counter);
var FldLabels = ['*Giftee Name', '*City', '*State','*Zip','Address',''];
var FldLenghts = [20,20,3,7,20];
var Giftee_Parent;
var mytable;

	var FldNames = new Array(6);
	FldNames[0]='Giftee_name';
	FldNames[1]='Giftee_city';
	FldNames[2]='Giftee_state';
	FldNames[3]='Giftee_zip';
	FldNames[4]='Giftee_address';

Object.prototype.clone = function () {var o = new Object(); for (var property in this) {o[property] = typeof (this[property]) == 'object' ? this[property].clone() : this[property]} return o}
Array.prototype.clone = function () {var a = new Array(); for (var property in this) {a[property] = typeof (this[property]) == 'object' ? this[property].clone() : this[property]} return a}

function giftee_init()
{
//		alert("b4 giftee_init()");
		Giftee_Parent = document.getElementById(giftee_div_name); 
//		alert("b4 giftee_init()2"+Giftee_Parent);
		CreateGifteeTable();
//		alert("b4 giftee_init()3" + document.STUDENT_REGISTRATION.gifarrayexport.value) ;

//		var StoreDataFld = document.getElementById("gifarrayexport").value;
		var StoreDataFld = document.STUDENT_REGISTRATION.gifarrayexport.value;
		//Check for existing giftee_data, if yes, split and strore into array
//		alert("StoreDataFld value="+ StoreDataFld);
		if (StoreDataFld !="")
		{
			counter=0;
			var StoreDataFldMain = StoreDataFld.split("$$$");
//			alert(StoreDataFldMain);
			counter=counter+1;
			for (var i=0;i<StoreDataFldMain.length-1 ; i++)
			{
				dataArray[i]=new Array(5);
				var StoreDataFldSub=StoreDataFldMain[i].split("^^^");
				for (var j=0; j<5; j++)
				{
					dataArray[i][j]=StoreDataFldSub[j];
				}
			}
			redraw_table(Giftee_Parent);

		}
		else
		{
		// show default values
			createfields();
		}
}

function CreateGifteeTable() 
{

        var mybody = document.getElementsByTagName("body")[0];

        // creates a <table> element and a <tbody> element
        mytable     = document.createElement("table");
        mytablebody = document.createElement("tbody");

		for(var tablerow = 0; tablerow < 1; tablerow++) {
            mycurrent_row = document.createElement("tr");
				for (j=0;j<FldLabels.length ; j++)
				{
		             mycurrent_cell = document.createElement("td");
	                currenttext = document.createTextNode(FldLabels[j]);
			        mycurrent_cell.appendChild(currenttext);
				    mycurrent_row.appendChild(mycurrent_cell);
				}
            mytablebody.appendChild(mycurrent_row);
        }
        mytable.appendChild(mytablebody);
//        mybody.appendChild(mytable);
		Giftee_Parent.appendChild(mytable);
        mytable.setAttribute("border", "0");
//		insRowLast();
		return mytable;
    }


// Insert row into table.
function insRowLast(name, id,  fieldlabel, fieldsize,addlink, fldvalue, columnindex,table_row_id)
{
	columnindex = columnindex + 0;
//	alert("columnindex=" + columnindex );
	newCell = table_row_id.insertCell(columnindex);
	newCell.innerHTML= "<INPUT name='" + (id + counter) +  "' value= '" + fldvalue + "' id ='" + (id + counter) + "' size = " + fieldsize  + ">";
	if (addlink)
	{
	newCell = table_row_id.insertCell(columnindex+1);
//	newCell.innerHTML= "<a href = >";
	newCell.innerHTML= "<a href=\"javascript:Deleterow(" + counter + ")\">Remove</a>";
	}
	showtotal();
}


//delete row
function deleteRow(table, row)
{
table.deleteRow(row);
}

//delete last row.
function deleteRow(table)
{
	noOfRows = table.rows.length;
	table.deleteRow(noOfRows-1);
}


function setCell (cell, value) {
  if (document.all)
    cell.innerText = value;
  else if (document.getElementById)
    cell.replaceChild(document.createTextNode(value), cell.firstChild);
}
//--------------------------- END OF TABLE FUNFCTIONS --  

function Deleterow(rownum, parentEI)
{
	var Debugstr="";
	var gift_box_ref = document.getElementById('gift_elements');
	StoreData(0);

	dataArray.splice(rownum-1, 1) 
	tmpdataArray = dataArray.clone();

	for (var i1=0; i1 <tmpdataArray.length; i1++)
	{
		for (j1=0;j1<5 ; j1++)
		{
			Debugstr = Debugstr + tmpdataArray[i1][j1];
		}
		Debugstr = Debugstr + "\n \n";
	}
	//alert(Debugstr);
	dataArray=tmpdataArray.clone(); 

	redraw_table(gift_box_ref);
//		ValidateRow(rownum);
//		showtotal();
}

function redraw_table(gift_box_ref)
{
	for (var i=0; i <counter; i++)
	{
	  var tmpfld = ""; 
		for (j=0;j<5 ; j++)
		{
			var tmpfld = document.getElementById(FldNames[j]+(i+1));
	   }

		while(gift_box_ref.firstChild)
		{
			gift_box_ref.removeChild(gift_box_ref.firstChild);
		}
		CreateGifteeTable()
		   counter= 0;
		   //alert("arr len = " + tmpdataArray.length);
		   var add_br=false, removelink=false; 
			for (var i=0; i < dataArray.length; i++)
			{
				noOfRows = mytable.rows.length;
				noOfCols = mytable.rows[noOfRows-1].cells.length;
				// insert row at last.
				var table_row_id=mytable.insertRow(noOfRows);

				counter++;
				for (j=0;j<5 ; j++)
				{					
					if (j==4)	{add_br=true;} else {add_br=false;}
					if (j==4 && i > 0)	{removelink=true;} else {removelink=false;}
				    insRowLast(FldNames[j], FldNames[j],  FldLabels[j],FldLenghts[j], removelink,  dataArray[i][j], j,table_row_id);
				}
			}

	}
	showtotal();
}

function createTextField(name, id, cssClass, parentEl, fieldlabel, fieldsize,addlink, addbr, fldvalue) 
{
	insRowLast(name, id, cssClass, parentEl, fieldlabel, fieldsize,addlink, addbr, fldvalue,0);
}


function makeLink(row)
{
  var newLink=document.createElement('a');
  newLink.setAttribute("href","javascript:Deleterow(" + row + ")")   ;
  var linkText=document.createTextNode('Remove');
  newLink.appendChild(linkText);
  document.getElementById('gift_elements').appendChild(newLink);
}

function StoreData(DebugOption)
{
	    var result=ValidateRow(0);
		if (result==false)		{return false;}

	var i=0, j=0;

	dataArray = new Array(counter+1);
	var Debug = "";
	var StoreDataFld=""
	for (var i=0; i <counter; i++)
	{
		Debug = Debug + "<" +(i+1) + ">";
		dataArray[i]=new Array(5);
		var tmpfld = "", comma=""; 
		for (j=0;j<5 ; j++)
		{
			var tmpfld = document.getElementById(FldNames[j]+(i+1));
			var tmpvalue =  tmpfld.value;
			dataArray[i][j]=tmpvalue;
			StoreDataFld= StoreDataFld + tmpvalue + "^^^" ;
			comma=", ";
			if (j==4) {comma=" ";}

			Debug = Debug +FldLabels[j] + ": "  + dataArray[i][j] + comma;
		}
		StoreDataFld=StoreDataFld + "$$$"
//		Debug = Debug + "\n \n <br/>";
		Debug = Debug + "<br/>";
	}
	if (DebugOption)
	{
//		alert(Debug);
	}
	StoreInbuffer(StoreDataFld);
//	Debug = "\n\n<br/>" + counter + " gift cards were ordered. " + "\n\n<br/>" + Debug;
	Debug = "<br/>Gift cards ordered($19.95 each): " + counter + "<br/>" + Debug;
	document.STUDENT_REGISTRATION.giftboxdb.value	 = Debug;
//	showtotal();
	return true;
}

function StoreInbuffer(StoreDataFldContent)
{
	//document.getElementById("gifarrayexport").value = StoreDataFldContent;
	document.STUDENT_REGISTRATION.gifarrayexport.value	 = StoreDataFldContent;
}

function showtotal()
{
		var totalcardcount=counter;
		 if (document.getElementById('student_reg').self.checked) 		
		 {
				totalcardcount=totalcardcount+1;
		 } 
//		document.STUDENT_REGISTRATION.TotalStudentCharge.value = Math.round((totalcardcount * 19.95));
		document.STUDENT_REGISTRATION.TotalStudentCharge.value = (totalcardcount * 19.95);
}

function ValidateRow(Counter)
{	

	var i=0, j=0;

	for (var i=0; i <counter; i++)
	{
		for (j=0;j<4 ; j++)
		{
			var tmpfld = document.getElementById(FldNames[j]+(i+1));
			var tmpvalue =  tmpfld.value;
			if (tmpvalue=="")
			{
				alert("Ompass Gift Cards:Please enter all required fields.");
				return false;				
			}
			
		}
	}
//				StoreData(0);
				return true;	
}

function createfullrow(index)
{
				counter++;
				var add_br=false, removelink=false; 

				noOfRows = mytable.rows.length;
				noOfCols = mytable.rows[noOfRows-1].cells.length;
				// insert row at last.
				var table_row_id=mytable.insertRow(noOfRows);


				//alert("cols=" + noOfCols);

				for (var j=0;j<5 ; j++)
				{					
					if (j==4 && counter > 1)	{removelink=true;} else {removelink=false;}					
//				    insRowLast(FldNames[j], FldNames[j], 'someOtherClass', document.getElementById('gift_elements'), FldLabels[j],FldLenghts[j], removelink, add_br, "", j,table_row_id);
				    insRowLast(FldNames[j], FldNames[j],  FldLabels[j],FldLenghts[j], removelink,  "", j,table_row_id);
				}
}

function createfields()
{
	if (counter==0)
	{
		createfullrow();

	}
	else 
	{
	    var result=ValidateRow(counter);
		if (result==true)
		{
				StoreData(false);
				createfullrow();
		}
	}
}

function clear_table()
{

   if (counter>1)  {
		for (var iii =counter; iii <=1 ; iii--)
		{
			Deleterow(iii, Giftee_Parent);
		}
	 }
		StoreInbuffer("")
		document.STUDENT_REGISTRATION.giftboxdb.value	 = "";
		counter=0;
		Giftee_Parent.removeChild(mytable);
}

function showHide (id)
{
		var ischecked = document.getElementById('student_reg').switchBox.checked;

		var style = document.getElementById(id).style
		if (style.visibility == "hidden")
		{
			style.visibility = "visible";
			if (ischecked == true) 
				{
					giftee_init();
				}
		}
		else
		{
			StoreInbuffer('');
			clear_table();
			
			style.visibility = "hidden";
		}
}

function gift_form_onload()
{
//			alert("gift_form_onload...");
		 if (document.getElementById('student_reg'))
		 {
			 if (document.getElementById('student_reg').switchBox.checked)
			 {
				showHide('gift_elements_wrapper');
				giftee_init();
//				alert("giftee_init called..");
			 }
		 }
		showtotal();
}

function checkdata()
{
			 if (document.getElementById('student_reg').switchBox.checked)
			 {
					if (StoreData(false))
					{
						showtotal();
						document.STUDENT_REGISTRATION.submit();
						return true;
					}
					else
					{
						return false;
					}
			 }
			 else
			{
						document.STUDENT_REGISTRATION.submit();
						return true;
			 }
}



var attw = null;
function createWindow(u, n, w, h, r)
{
	args = 'width='+w+',height='+h+',resizable=no,scrollbars=yes,status=0';
	remote = window.open(u,n,args);
	if (remote != null) 
	{
		if (remote.opener == null)
		{
			remote.opener =  self ;
		}
	}
	if (r == 1)
	{
		return remote;
	}
}

function Attach(url) 
{
	if (!attw || attw.closed)
	{
		attw = createWindow( url,  'attachwin', 520, 500, 1);
	}
	attw.focus();
}

function open_win()
   {
   window.open('../attach.php','Attach','width=600,height=700,   menubar=yes,status=yes,location=yes,   toolbar=yes,scrollbars=yes');
   }
//]]>