/* ------- Start Affiliate part -------- */
	// describe "defined_fields" variable
	var defined_fields = new Array (
					 // new Array (elem_1, elem_2)
					 // elem_1 -> affiliate control id
					 // elem_2 -> param that must be replaced
					 // Affiliate must complete: elem_1
					 new Array ("player_emailaddress", "%EMAIL%"),
					 new Array ("firstname", "%FIRST_NAME%"),
					 new Array ("lastname", "%LAST_NAME%"),
					 new Array ("house_no", "%HOUSE_NO%"),
					 new Array ("town", "%CITY%"),
					 new Array ("postcode", "%POST_CODE%"),
					 new Array ("password", "%PASSWORD%"),
					 new Array ("address1", "%ADDRESS2%"),
					 new Array ("address2", "%ADDRESS3%"),
					 new Array ("house_number", "%HOUSE_NO%"),
 					// new Array ("phoneTM", "%PHONE%"),
 					// new Array ("phoneO", "%PHONE%"),
 					 new Array ("countyorstate", "%COUNTY%"),
					 new Array ("aff_code", "%AFF_CODE%"))

/*new Array ("address3", "%ADDRESS3%"), */

	var dates_format = new Array (
					 // new Array (elem_1, elem_2, elem_3, elem_4)
					 // elem_1 - > date id(year, month, day, birthdate - Please don't change this field!!!)
					 // elem_2 - > name of param that will be replaced - Please don't change it!!!
					 // elem_3 - > affiliate control id
					 // elem_4 - > affiliate format for (year, month, day, birthdate)
					 // Affiliate must complete: elem_3 and elem_4

					 new Array ("year", "yearofbirth", "%B_YEAR%", "yyyy"),
					 new Array ("month", "monthofbirth", "%B_MONTH%","M"),
					 new Array ("day", "dayofbirth", "%B_DAY%", "d"),
					 new Array ("birthdate", "birthdate", "%BIRTHDATE%", "MM/dd/yyyy")
					 )


	// describe sex_control variable = new Array (elem_1, elem_2)
	// elem_1 -> type of control ("dropDownList" control or "radio"  or "variable")
	// elem-2 -> name of control if control is by type radio
	//           OR id control if control is by type dropDownlist
	// Affiliate mut complete -> elem_1 and elem_2 fields
	// elem_3 -> param name that must be replaced - Please don't change it!!!
	var sex_control = new Array ("dropDownList", "sex", "%SEX%")
	var sex_formats = new Array(
					// new Array (elem_1, elem_2)
					// elem_1 -> sex id - Please don't change this field!!!
					// elem_2 -> affiliate defined values for sex format
					// Affiliate must complete: elem_2 field
					new Array ("male",  "M"),
					new Array ("female", "F")
					)


	// describe title_control variable = new Array (elem_1, elem_2)
	// elem_1 -> type of control ("dropDownList" control or "radio"  or "variable")
	// elem-2 -> name of control if control is by type radio
	//           OR id control if control is by type dropDownlist
	// Affiliate mut complete -> elem_1 and elem_2 fields
	// elem_3 -> param name that must be replaced - Please don't change it!!!
	var title_control = new Array ("dropDownList", "sex", "%TITLE%")
	var title_formats = new Array(
					// new Array (elem_1, elem_2)
					// elem_1 -> title id - Please don't change this field!!!
					// elem_2 -> affiliate defined values for title format
					// Affiliate must complete: elem_2 field
					new Array ("mr",  "Mr"),
					new Array ("mrs", "Mrs"),
					new Array ("miss", "Miss"),
					new Array ("ms", "Ms")
					)


	// describe "marital_status_control" = new Array (elem_1, elem_2, elem_3)
	// elem_1 -> type of control ("dropDownList" control or "radio"  or "variable")
	// elem_2 -> name of control if control is by type radio
	//           OR id control if control is by type dropDownlist
	// elem_3 -> param name that must be replaced - Please don't change it!!!
	// Affiliate must complete -> elem_1 and elem_2 fields
	var marital_status_control = new Array ("dropDownList", "marital_status", "%MARITAL%")

	var marital_list = new Array(
					// describe new Array (elem_1, elem_2)
					// elem_1 -> marital status - Please don't change this field!!!
					// elem_2 -> affiliate defined values for marital status
					// Affiliate must complete: elem_2 field
					new Array("maried", ""),
			new Array("single", ""),
			new Array("divorced", ""),
			new Array("widow", "")
					)

	var siteIP = "83.170.73.29"
	var siteURL = "www.loopylotto.com"
	var cookieName="coregLoopyLotto"


	var how_many_coreg_on_page = 3


/* -------  End Affiliate part -------- */

	var url = ""

	var fieldsArray = new Array
	function MyField()
	{
		var field_to_replace
		var field_name
		var field_value
	}

	function AdvDateTimeFields()
	{
		var year
		var month
		var day
		var birthdate
	}
	
	function getCurrentDate()
	{
		var curdate = new Date()
		var mday = curdate.getDate()
		var mMonth = curdate.getMonth()
		var mYear = curdate.getFullYear()

		var strDate = mday+'/'+mMonth+'/'+mYear
		var strFormat = 'd/M/yyyy'
		
		return curdate.format('dd/MM/yy')
	}

// get values from controls and replace parameters from coregURL
function GetFieldValues()
	{
		
		var k = 0

		for(i=0; i < defined_fields.length; i++)
		{
			fieldName = defined_fields[i][0]
			fieldToReplace = defined_fields[i][1]

			//alert("fieldName: " + fieldName + " --> " + "fieldToReplace: " + fieldToReplace)
			var myField = new MyField
			myField.field_to_replace = fieldToReplace
			myField.field_name = fieldName

			if(document.getElementById(fieldName) != null)
			{
				myField.field_value = document.getElementById(fieldName).value
				fieldsArray[k++] = myField
			}
		}


		for(i=1; i<=arrayDivs.length; i++)
		{
			var original_CoregURL = document.getElementById("vInitialCoregURL_Div" + i).value
			var newCoregURL
			newCoregURL = original_CoregURL

			for(j=0; j<fieldsArray.length; j++)
			{
				var myField = new MyField
				myField = fieldsArray[j]

				newCoregURL = newCoregURL.replace(myField.field_to_replace, myField.field_value)
			}

			// replace siteIP and current Date
			newCoregURL = newCoregURL.replace("%CAPTURE_DATE%", getCurrentDate())
			newCoregURL = newCoregURL.replace("%CLIENT_IP%", siteIP)
			newCoregURL = newCoregURL.replace("%SITE_URL%", siteURL)
			

			// fill dates fields
			var myAdvDateTimeFields = new AdvDateTimeFields
			//alert('1 --> getDates' + i)
			myAdvDateTimeFields = getDates(i)
			//alert('2 --> getDates' + i)


			newCoregURL = newCoregURL.replace("%B_YEAR%", myAdvDateTimeFields.year)
			newCoregURL = newCoregURL.replace("%B_MONTH%", myAdvDateTimeFields.month)
			newCoregURL = newCoregURL.replace("%B_DAY%", myAdvDateTimeFields.day)
			newCoregURL = newCoregURL.replace("%BIRTHDATE%", myAdvDateTimeFields.birthdate)


			// fill title field
			var aff_title_value
			if(title_control[0] == "dropDownList")
			{
				aff_title_value = getDropDownListText(title_control[1])
			}


			// replace param %TITLE%
			newCoregURL = newCoregURL.replace("%TITLE%", aff_title_value)

			/*------ end replace %TITLE% ------*/

			// fill sex field
			var aff_sex_value
			if(sex_control[0] == "dropDownList")
			{
				aff_sex_value = getDropDownListValue(sex_control[1])
			}
			else
			if(sex_control[0] == "radio")
			{
				aff_sex_value = getRadioButtonsValue(sex_control[1])
			}

			var adv_sex_value
			adv_sex_value = getAdvSexValue(aff_sex_value, i)
			// replace param %SEX%
			newCoregURL = newCoregURL.replace(sex_control[2], adv_sex_value)
			/*------end replace %SEX%-----*/

			// fill marital field
			// start replace  %MARITAL%
			var aff_marital_value
			if(marital_status_control[0] == "dropDownList")
			{
				aff_marital_value = getDropDownListValue(marital_status_control[1])
			}
			else
			if(marital_status_control[0] == "radio")
			{
				aff_marital_value = getRadioButtonsValue(marital_status_control[1])
			}


			var adv_marital_value
			var adv_marital_value = getAdvMaritalStatus(aff_marital_value, i)

			// replace param %MARITAL%
			newCoregURL = newCoregURL.replace(marital_status_control[2], adv_marital_value)
			/*------end replace %MARITAL%-----*/



			// replace offers param - verif daca controlul exista
			if(document.getElementById('check_offers'+i) != undefined)
			{
				if(document.getElementById('check_offers'+i).checked)
				{
					newCoregURL = newCoregURL.replace("%ACCEPT_OFFERS%", "yes");
				}
				else
				{
					newCoregURL = newCoregURL.replace("%ACCEPT_OFFERS%", "");
				}
			}
			else
			{
				newCoregURL = newCoregURL.replace("%ACCEPT_OFFERS%", "");
			}


			// replace %CATALOGUE% for Catalink
			if(newCoregURL.indexOf('%CATALOGUE%') != -1)
			{
				var catText = getCatalogues()

				newCoregURL = newCoregURL.replace("%CATALOGUE%", catText);

				i = 11
			}



			document.getElementById("vCoregURL_Div" + i).value = newCoregURL

			//if(i == 14)
			//	alert("vCoregURL_Div" + i + " ---> " + document.getElementById("vCoregURL_Div" + i).value)
		}

		return false
	}

	// param controlID - id-ul controlului de tip dropDownList(select)
	// return value of that control
	function getDropDownListValue(controlID)
	{
		if(document.getElementById(controlID) != null)
		{
			return document.getElementById(controlID).value
		}
	}

	// param controlID - id-ul controlului de tip dropDownList(select)
	// return text of that control
	function getDropDownListText(controlID)
	{
		if(document.getElementById(controlID) != null)
		{
			return document.forms[0].sex.options[document.forms[0].sex.selectedIndex].text
		}
	}


	// param radioGroupName - groupname of radio buttons
	// return value of that control
	function getRadioButtonsValue(radioGroupName)
	{
		var sex
		radioArray = document.getElementsByName(radioGroupName)
		var i
		for (i=0; i<radioArray.length; i++){
			if(radioArray[i].checked == true)
			{
				sex = radioArray[i].value
			}
		}

		return sex
	}


	function getCatalogues()
	{
		var catParamURL = "";

		var alltags=document.getElementsByTagName("*")

	
		for (i=0; i<alltags.length; i++)
		{
			var nameTag = alltags[i]
		
			if(nameTag.name != undefined && nameTag.name.indexOf('cat_id_') == 0)
			{
				if(nameTag.checked)
				{
					
					if(catParamURL != "")
					{
						catParamURL += "-and-"
					}
				
					catParamURL += nameTag.name + "=yes"
				}
			}		
		}

	
		return catParamURL;	
	}


	// get variable values and replace params from coregURL
	function GetVariableValue(strURL)
	{
		var variableArray = new Array
		variableArray = strURL.split("&")

		var i=0
		var k = 0
		for(i=0; i< defined_fields.length; i++)
		{
			var fieldName = defined_fields[i][0]
			var fieldToReplace = defined_fields[i][1]

			for(j=0; j<variableArray.length; j++)
			{
				var variable_value = new Array
				variable_value = variableArray[j].split("=")

				if(fieldName == variable_value[0])
				{
					var myField = new MyField
					myField.field_to_replace = fieldToReplace
					myField.field_name = fieldName

					myField.field_value = variable_value[1]
					fieldsArray[k++] = myField
				}
			}
		}

		var urlVariableArray = new Array
		var l=0
		// construieste sirul cu variabile din url
		for(j=0; j<variableArray.length; j++)
		{
			var variable_value = new Array
			variable_value = variableArray[j].split("=")

			var myField = new MyField
			myField.field_name = variable_value[0]
			myField.field_value = variable_value[1]

			urlVariableArray[l++] = myField
		}



		for(i=1; i<=arrayDivs.length; i++)
		{
			var original_CoregURL = document.getElementById("vInitialCoregURL_Div" + i).value
			var newCoregURL
			newCoregURL = original_CoregURL

			for(j=0; j<fieldsArray.length; j++)
			{
				var myField = new MyField
				myField = fieldsArray[j]

				newCoregURL = newCoregURL.replace(myField.field_to_replace, myField.field_value)
			}


			// fill dates fields
			var myAdvDateTimeFields = new AdvDateTimeFields
			myAdvDateTimeFields = getDatesFromVariable(i, urlVariableArray)

			newCoregURL = newCoregURL.replace("%B_YEAR%", myAdvDateTimeFields.year)
			newCoregURL = newCoregURL.replace("%B_MONTH%", myAdvDateTimeFields.month)
			newCoregURL = newCoregURL.replace("%B_DAY%", myAdvDateTimeFields.day)
			newCoregURL = newCoregURL.replace("%BIRTHDATE%", myAdvDateTimeFields.birthdate)

			// set sex value
			/* start replace %SEX% */
			var aff_sex_value
			for(j=0; j<variableArray.length; j++)
			{
				var variable_value = new Array
				variable_value = variableArray[j].split("=")

				if(variable_value[0] == sex_control[1])
				{
					aff_sex_value = variable_value[1]
				}
			}

			var adv_sex_value
			adv_sex_value = getAdvSexValue(aff_sex_value, i)

			// replace param %SEX%
			newCoregURL = newCoregURL.replace(sex_control[2], adv_sex_value)
			/* end replace %SEX% */


			/* start replace %MARITAl% status*/
			var aff_marital_value
			for(j=0; j<variableArray.length; j++)
			{
				var variable_value = new Array
				variable_value = variableArray[j].split("=")

				if(variable_value[0] == marital_status_control[1])
				{
					aff_marital_value = variable_value[1]
				}
			}

			var adv_marital_value
			var adv_marital_value = getAdvMaritalStatus(aff_marital_value, i)

			// replace param "%MARITAL%"
			newCoregURL = newCoregURL.replace(marital_status_control[2], adv_marital_value)
			/*------end replace %MARITAL%-----*/
			/* end replace %MARITAl% status*/
/*

			// replace offers param - verif daca controlul exista
			if(document.getElementById('check_offers'+i) != undefined)
			{
				if(document.getElementById('check_offers'+i).checked)
				{
					newCoregURL = newCoregURL.replace("%ACCEPT_OFFERS%", "yes");
				}
				else
				{
					newCoregURL = newCoregURL.replace("%ACCEPT_OFFERS%", "no");
				}
			}
			else
			{
				newCoregURL = newCoregURL.replace("%ACCEPT_OFFERS%", "no");
			}
*/

			// replace offers param %ACCEPT_OFFERS% 
			newCoregURL = newCoregURL.replace("%ACCEPT_OFFERS%", "");

			document.getElementById("vCoregURL_Div" + i).value = newCoregURL
		}

		return false
	}

	// return advertiser marital status adequate to affiliate marital status
	function getAdvMaritalStatus(aff_marital_value, index_div)
	{
		var id_marital
		var adv_marital_value

		// get selected value from control
		for(j=0; j < marital_list.length; j++)
		{
			if(aff_marital_value == marital_list[j][1])
			{
				id_marital = marital_list[j][0]
			}
		}

		adv_maritalDiv_list = document.getElementsByName("adv_marital_Div" + index_div)

		for(j=0; j<adv_maritalDiv_list.length; j++)
		{
			strDiv_id = adv_maritalDiv_list[j].id
			adv_marital_id = strDiv_id.substring(0, strDiv_id.indexOf("_Div"))

			if(id_marital == adv_marital_id)
			{
				adv_marital_value = adv_maritalDiv_list[j].value
			}
		}

		return adv_marital_value
	}

	// return advertiser sex value adequate to affiliate sex value
	function getAdvSexValue(aff_sex_value, index_div)
	{
		var adv_sex_value
		var id_sex

		for(j=0; j<sex_formats.length; j++)
		{
			if(sex_formats[j][1] == aff_sex_value)
			{
				id_sex = sex_formats[j][0]
				break;
			}
		}

		if(id_sex == "male")
		{
			adv_sex_value = document.getElementById("vSex_Male_Div" + index_div).value
		}
		else
		{
			adv_sex_value = document.getElementById("vSex_Female_Div" + index_div).value
		}

		return 	adv_sex_value
	}



	// format affiliates dates for every advertiser site dates
	// affiliate dates is obtain from controls
	// return an object AdvDateTimeFields
	function getDates(currentDiv)
	{
		var myAdvDateTimeFields = new AdvDateTimeFields
		var birthdate = new Date



		if( document.getElementById(dates_format[3][1]) != null && document.getElementById(dates_format[3][1]).value != "")
		{
			var strDate = document.getElementById(dates_format[3][1]).value
			var strFormat = dates_format[3][1]

			var d = Date.parseString(strDate, strFormat)

			myAdvDateTimeFields.year = d.format(document.getElementById("vB_YEAR_Div" + currentDiv).value)
			myAdvDateTimeFields.month = d.format(document.getElementById("vB_MONTH_Div" + currentDiv).value)
			myAdvDateTimeFields.day = d.format(document.getElementById("vB_DAY_Div" + currentDiv).value)
			myAdvDateTimeFields.birthdate = d.format(document.getElementById("vBIRTHDATE_Div" + currentDiv).value)

			return myAdvDateTimeFields
		}



		if( document.getElementById(dates_format[0][1]) != null && document.getElementById(dates_format[0][1]).value != "")
		{
			var d = new Date
			d.setFullYear(document.getElementById(dates_format[0][1]).value)

			myAdvDateTimeFields.year = d.format(document.getElementById("vB_YEAR_Div" + currentDiv).value)
			birthdate.setFullYear(d.format("yyyy"))

		}


		if( document.getElementById(dates_format[1][1]) != null && document.getElementById(dates_format[1][1]).value != "")
		{
			var d = new Date
			var month = document.getElementById(dates_format[1][1]).value
			var m = parseInt(month)
			m=m-1

			d.setMonth(m)
			myAdvDateTimeFields.month = d.format(document.getElementById("vB_MONTH_Div" + currentDiv).value)
			birthdate.setMonth(m)
		}


		if( document.getElementById(dates_format[2][1]) != null && document.getElementById(dates_format[2][1]).value != "")
		{
			var d = new Date
			d.setDate(document.getElementById(dates_format[2][1]).value)

			myAdvDateTimeFields.day = d.format(document.getElementById("vB_DAY_Div" + currentDiv).value)
			birthdate.setDate(d.format("d"))
		}

		myAdvDateTimeFields.birthdate = birthdate.format(document.getElementById("vBIRTHDATE_Div" + currentDiv).value)

		return myAdvDateTimeFields
	}

	// format affiliates dates for every advertiser site dates
	// affiliate dates is obtain from variable
	// return an object AdvDateTimeFields
	function getDatesFromVariable(currentDiv, urlVariabArray)
	{
		//alert('enter getDatesFromVariable ' + urlVariabArray.length)

		var myAdvDateTimeFields = new AdvDateTimeFields
		var birthdate = new Date

		var strDate = ""
		var strYear = ""
		var strFormat = ""
		var strMonth = ""
		var strDay = ""

		var i
		for(i=0; i<urlVariabArray.length; i++)
		{

			var myField = new MyField
			myField = urlVariabArray[i]

			if(myField.field_name == dates_format[3][1])
			{
				strDate = myField.field_value
				strFormat = dates_format[3][3]
			}

			if(myField.field_name == dates_format[0][1])
			{
				strYear =  myField.field_value
			}

			if(myField.field_name == dates_format[1][1])
			{
				strMonth =  myField.field_value
			}

			if(myField.field_name == dates_format[2][1])
			{
				strDay =  myField.field_value
			}
		}

		if(strDate != null && strDate != "")
		{
			var d = Date.parseString(strDate, strFormat)

			myAdvDateTimeFields.year = d.format(document.getElementById("vB_YEAR_Div" + currentDiv).value)
			myAdvDateTimeFields.month = d.format(document.getElementById("vB_MONTH_Div" + currentDiv).value)
			myAdvDateTimeFields.day = d.format(document.getElementById("vB_DAY_Div" + currentDiv).value)
			myAdvDateTimeFields.birthdate = d.format(document.getElementById("vBIRTHDATE_Div" + currentDiv).value)

			return myAdvDateTimeFields
		}


		if(strYear != null && strYear != "")
		{
			var d = new Date
			d.setFullYear(strYear)
			//alert('date: ' + d)
			myAdvDateTimeFields.year = d.format(document.getElementById("vB_YEAR_Div" + currentDiv).value)
			//alert('year: ' + d.format(document.getElementById("vB_YEAR_Div" + currentDiv).value))
			birthdate.setFullYear(d.format("yyyy"))
			//alert('1 -->' + myAdvDateTimeFields.year)
		}

		if(strMonth != null && strMonth != "")
		{
			var d = new Date
			var month = strMonth
			var m = parseInt(month)
			m=m-1

			d.setMonth(m)
			myAdvDateTimeFields.month = d.format(document.getElementById("vB_MONTH_Div" + currentDiv).value)
			birthdate.setMonth(m)
		}

		if(strDay != null && strDay != "")
		{
			var d = new Date
			d.setDate(strDay)

			myAdvDateTimeFields.day = d.format(document.getElementById("vB_DAY_Div" + currentDiv).value)
			birthdate.setDate(d.format("d"))
		}

		myAdvDateTimeFields.birthdate = birthdate.format(document.getElementById("vBIRTHDATE_Div" + currentDiv).value)

		return myAdvDateTimeFields
	}

/* ---- cookie code ---- */

	var arrayDivs = new Array()
	var cookieStatus = 0
	var cond
	var actualShowedDivs

	// the MyClass class - contains info for an AdvProgram
	function MyClass(){
		var name /* name - of div that incapsulate info of an advProgram */
		var shown /* could be 0 - none/1 - block */
		var coregStat /* 1- it was choosed to be coreg, 0 it was not choosed to be coregs */
	}

// create arrayDivs Array object - this object contain MyClass() objects
function createArrayObjects()
{
	cond = 0
	readCookie()

	var alltags=document.getElementsByTagName("*")

	var j=0;

	if(arrayDivs.length > 0)
	{
		for(i=0; i<arrayDivs.length; i++)
		{
			var ob1 = new MyClass()
			ob1 = arrayDivs[i]

			if (document.getElementById(ob1.name + "_yes").checked == true )
			{

				ob1.coregStatus = 1
			}

			if(document.getElementById(ob1.name).style.display == "block")
			{
				ob1.shown = 1;
			}

			arrayDivs[i] = ob1
		}

	}
	else
	{
		/*alert('array-ul nu exista')*/
		for (i=0; i<alltags.length; i++)
		{
			var nameTag = alltags[i].getAttribute('id')

			if(nameTag != null && nameTag.indexOf('Div') == 0 && nameTag.indexOf('_') == -1)
			{
				var ob1 = new MyClass();

				ob1.name = alltags[i].getAttribute('id')

				ob1.shown = 0;

				if (document.getElementById(ob1.name + "_yes").checked == true )
				{
					ob1.coregStatus = 1
				}else
				{
					ob1.coregStatus = 0
				}

				arrayDivs[j] = ob1

				j++;
			 }
		}
	}
}


/* create cookie - store divs name, if a diw was shown and id an advProgram was chosed to make coreg*/
function createCookie(name, value, days)
{
	createArrayObjects()

	var stringCookie = ''

	if(arrayDivs.length > 0)
	{
		stringCookie += 'start_cookie'
	}

	for(i=0; i<arrayDivs.length;i++)
	{
		var ob = arrayDivs[i]

		if( i < arrayDivs.length -1)
		{
			stringCookie += ob.name + "*" + ob.coregStatus + "*" + ob.shown + "#"
		}
		else
		{
			stringCookie += ob.name + "*" + ob.coregStatus + "*" + ob.shown
		}
	}

	if(arrayDivs.length > 0)
	{
		stringCookie += 'end_cookie'
	}

	if (days)
	{
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";

	document.cookie = name + " = " + stringCookie + ";" + expires + "; path=/";
}

// read cookie and build arrayDivs object
function readCookie()
{
	if(document.cookie != "" && document.cookie.indexOf("cookieName") != -1)
	{
		var startIndex = document.cookie.indexOf("start_cookie") + "start_cookie".length;
		var endCookie = document.cookie.indexOf("end_cookie");

		var stringCookie = document.cookie.substring(startIndex, endCookie);

		var valCookie = stringCookie

		var aCookie = valCookie.split("#")

		for(i=0; i< aCookie.length ; i++)
		{
			myClassArray = aCookie[i].split("*")

			var ob = new MyClass()
			ob.name = myClassArray[0]
			ob.coregStatus = myClassArray[1]
			ob.shown = myClassArray[2]
			arrayDivs[i] = ob
		}
	}
}

	// erase cookie
	function eraseCookie(name)
	{
		createCookie(name,"",-1);

		readCookie()

		alert('Deleted Cookie');
	}


	// return an array with objects MyClass() that were "notShowed" or "showed" or "choosed"
	function returnArray(pArray, orderBy)
	{
		resultArray = new Array()
		j=0
		if(orderBy == "notShowed")
		{
			for(i=0;i < pArray.length; i++)
			{
				ob = new MyClass()
				ob = pArray[i]

				if(ob.shown == 0)
				{
					resultArray[j++] = ob
				}
			}
		}

		if(orderBy == "showed")
		{
			for(i=0;i < pArray.length; i++)
			{
				ob = new MyClass()
				ob = pArray[i]

				if(ob.coregStatus == 0 && ob.shown == 1)
				{
					resultArray[j++] = ob
				}
			}
		}


		if(orderBy == "choosed")
		{
			for(i=0;i < pArray.length; i++)
			{
				ob = new MyClass()
				ob = pArray[i]

				if(ob.coregStatus == 1 && ob.shown == 1)
				{
					resultArray[j++] = ob
				}
			}
		}

		return resultArray
	}

	// return an array with random numbers
	// maxUniqueNumber - haw many unique numbers must be
	// maxLimit - numbers must be < than maxLimit
	function getRandomArray(maxUniqueNumber, maxLimit)
	{
		var randomArray = new Array()

		nrOfRandoms = 0
		while(nrOfRandoms < maxUniqueNumber)
		{
			var code = 1
			var randomnumber=Math.floor(Math.random()*maxLimit)

			if(randomArray.length == 0)
			{
				randomArray[0] = randomnumber
			}
			else
			{

				for(i=0; i<randomArray.length; i++)
				{
					if(randomnumber == randomArray[i] && code==1)
					{
						code = 0
					}
				}
			}

			if(code == 1)
			{
				nrOfRandoms++

				if(nrOfRandoms != 1)
				{
					randomArray[nrOfRandoms-1] = randomnumber
				}
			}
		}

		return randomArray
	}

	// show a div
	function showDiv(myClassObj)
	{
		if(myClassObj != null)
		{
			var dirName = myClassObj.name

			var Div = document.getElementById(dirName)

			Div.style.display='block'
		}
	}

	// hide divs
	function hideDivs()
	{
		for(i=0; i< arrayDivs.length; i++)
		{
			var dirName = arrayDivs[i]
			var Div = document.getElementById(dirName.name)
			Div.style.display = 'none'

		}
	}

	// show divs
	function showDivs(nrOfDivsToShow){

		if(cookieStatus != 0)
		{
			hideDivs()
		}
		else
		{
			cookieStatus = 1
		}

		readCookie()

		actualShowedDivs = new Array()
		var indexShowDivs = 0

		var tempArrayDivs = arrayDivs
		var nrOfShowedDivs = 0

		// alegem elem care n-au fost vizualizate pana acum
		var notShowedArray = returnArray(tempArrayDivs, "notShowed")
		if(notShowedArray.length > nrOfDivsToShow)
		{
			var randNrArray = getRandomArray(nrOfDivsToShow, notShowedArray.length)

			for(i=0; i< randNrArray.length; i++)
			{
				randNumber = randNrArray[i]
				ob = notShowedArray[randNumber]

				showDiv(ob)

				actualShowedDivs[indexShowDivs++] = ob
				nrOfShowedDivs++
			}
			//alert('div-uri care n-au fost vizualizate pana acum')
		}
		else
		{
			// afisam toate
			for(i=0; i< notShowedArray.length; i++)
			{
				ob = notShowedArray[i]
				actualShowedDivs[indexShowDivs++] = ob
				showDiv(ob)
			}

			nrOfShowedDivs = notShowedArray.length
			//alert('div-uri care n-au fost vizualizate pana acum')
		}


		// alegem cele care n-au fost selectate dar au fost vizualizate
		notSelectedArrayDivs = returnArray(tempArrayDivs, "showed")
		if(nrOfShowedDivs < nrOfDivsToShow)
		{
			//alert('div-urile care n-au fost selectate dar au fost vizualizate')
			if(notSelectedArrayDivs.length > nrOfDivsToShow - nrOfShowedDivs)
			{
				var randNrArray = getRandomArray(nrOfDivsToShow - nrOfShowedDivs, notSelectedArrayDivs.length)
				for(i=0; i< randNrArray.length && nrOfShowedDivs < nrOfDivsToShow; i++)
				{
					randNumber = randNrArray[i]
					ob = notSelectedArrayDivs[randNumber]

					//alert('showed ' + i + ' ' + ob.name + '* ' + ob.shown + ' * ' + ob.coregStatus)

					showDiv(ob)
					actualShowedDivs[indexShowDivs++] = ob
					nrOfShowedDivs++
				}
			}
			else
			{
				//afisare toate
				var randNrArray = getRandomArray(notSelectedArrayDivs.length, notSelectedArrayDivs.length)
				for(i=0; i< randNrArray.length; i++)
				{
					randNumber = randNrArray[i]
					ob = notSelectedArrayDivs[randNumber]

					actualShowedDivs[indexShowDivs++] = ob
					showDiv(ob)
				}
				nrOfShowedDivs += notSelectedArrayDivs.length
			}
		}

		// alegem cele care au fost selectate
		choosed = returnArray(tempArrayDivs, "choosed")
		if(nrOfShowedDivs < nrOfDivsToShow)
		{
			if(choosed.length > nrOfDivsToShow - nrOfShowedDivs)
			{
				var randNrArray = getRandomArray(nrOfDivsToShow - nrOfShowedDivs, choosed.length)
				for(i=0; i< randNrArray.length && nrOfShowedDivs < nrOfDivsToShow; i++)
				{
					randNumber = randNrArray[i]
					ob = choosed[randNumber]

					showDiv(ob)
					actualShowedDivs[indexShowDivs++] = ob
					nrOfShowedDivs++
					//alert('showed ' + i + ' ' + ob.name + '* ' + ob.shown + ' * ' + ob.coregStatus)
				}
			}
			else
			{
				//afisare toate
				var randNrArray = getRandomArray(choosed.length, choosed.length)
				for(i=0; i< randNrArray.length; i++)
				{
					randNumber = randNrArray[i]
					ob = choosed[randNumber]
					actualShowedDivs[indexShowDivs++] = ob
					showDiv(ob)
				}
				nrOfShowedDivs += choosed.length
			}
		}
	}

	// if no divs were selected for make coregs than show the same divs
	function showActualDivs()
	{
		for(i=0; i< actualShowedDivs.length; i++)
		{
			ob = actualShowedDivs[i]

			showDiv(ob)
		}
	}

	/* set modification for an Advprogram (if it was choosed mark coregstatus = 1 and shown =1, if it was only shown than mark shown = 1) */
	function verifyCondition()
	{
		var nrCheckedPrograms = 0;
		var alltags=document.getElementsByTagName("*")

		for (i=0; i<alltags.length; i++)
		{
			var nameTag = alltags[i].getAttribute('id')

			if(nameTag != null && nameTag.indexOf('Div') == 0 && nameTag.indexOf('_') == -1)
			{
				var ob1 = new MyClass();

				ob1.name = alltags[i].getAttribute('id')

				ob1.shown = 0;

				if (document.getElementById(ob1.name + "_yes").checked == true )
				{
					ob1.coregStatus = 1

					nrCheckedPrograms++;
					//alert('good condition')
					
					if(nrCheckedPrograms >= 2)
					{
						return 1
					}
				}
			 }
		}

		return 0
	}

	// verify the existence of cookie at load  body
	function verifyCookie()
	{


		if (document.cookie.indexOf('cookieName') == -1)
		{
			createCookie("cookieName","",100)
			showDivs(how_many_coreg_on_page)
		}
		else
		{
			if(verifyCondition() == 0)
			{
				showDivs(how_many_coreg_on_page)
			}
		}
	}

	// submit
	function onSubmit()
	{
		var alltags=document.getElementsByTagName("*")

		for (i=0; i<alltags.length; i++)
		{
			var nameTag = alltags[i].getAttribute('id')

			if(nameTag != null && nameTag.indexOf('Div') == 0 && nameTag.indexOf('_') == -1)
			{
				var ob1 = new MyClass();

				ob1.name = alltags[i].getAttribute('id')

				if (document.getElementById(ob1.name + "_yes").checked == true )
				{
					coregURL = document.getElementById("vCoregURL_" + ob1.name).value
					//alert("div name: " + ob1.name + " --> " + coregURL)

					DOCoregs(coregURL)
				}
			 }
		}



		createCookie("cookieName", "", 100)

		//showDivs(how_many_coreg_on_page)
		return false
	}


/* ---- date format ----- */
/*
Date functions

These functions are used to parse, format, and manipulate Date objects.
See documentation and examples at http://www.JavascriptToolbox.com/lib/date/

*/

// Utility function to append a 0 to single-digit numbers
Date.LZ = function(x) {return(x<0||x>9?"":"0")+x};
// Full month names. Change this for local month names
Date.monthNames = new Array('January','February','March','April','May','June','July','August','September','October','November','December');
// Month abbreviations. Change this for local month names
Date.monthAbbreviations = new Array('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
// Full day names. Change this for local month names
Date.dayNames = new Array('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday');
// Day abbreviations. Change this for local month names
Date.dayAbbreviations = new Array('Sun','Mon','Tue','Wed','Thu','Fri','Sat');
// Used for parsing ambiguous dates like 1/2/2000 - default to preferring 'American' format meaning Jan 2.
// Set to false to prefer 'European' format meaning Feb 1
Date.preferAmericanFormat = true;

// If the getFullYear() method is not defined, create it
if (!Date.prototype.getFullYear) {
  Date.prototype.getFullYear = function() { var yy=this.getYear(); return (yy<1900?yy+1900:yy); }
}

// Parse a string and convert it to a Date object.
// If no format is passed, try a list of common formats.
// If string cannot be parsed, return null.
// Avoids regular expressions to be more portable.
Date.parseString = function(val, format) {
  // If no format is specified, try a few common formats
  if (typeof(format)=="undefined" || format==null || format=="") {
    var generalFormats=new Array('y-M-d','MMM d, y','MMM d,y','y-MMM-d','d-MMM-y','MMM d','MMM-d','d-MMM');
    var monthFirst=new Array('M/d/y','M-d-y','M.d.y','M/d','M-d');
    var dateFirst =new Array('d/M/y','d-M-y','d.M.y','d/M','d-M');
    var checkList=new Array(generalFormats,Date.preferAmericanFormat?monthFirst:dateFirst,Date.preferAmericanFormat?dateFirst:monthFirst);
    for (var i=0; i<checkList.length; i++) {
      var l=checkList[i];
      for (var j=0; j<l.length; j++) {
        var d=Date.parseString(val,l[j]);
        if (d!=null) {
          return d;
        }
      }
    }
    return null;
  }

  this.isInteger = function(val) {
    for (var i=0; i < val.length; i++) {
      if ("1234567890".indexOf(val.charAt(i))==-1) {
        return false;
      }
    }
    return true;
  };
  this.getInt = function(str,i,minlength,maxlength) {
    for (var x=maxlength; x>=minlength; x--) {
      var token=str.substring(i,i+x);
      if (token.length < minlength) {
        return null;
      }
      if (this.isInteger(token)) {
        return token;
      }
    }
  return null;
  };
  val=val+"";
  format=format+"";
  var i_val=0;
  var i_format=0;
  var c="";
  var token="";
  var token2="";
  var x,y;
  var year=new Date().getFullYear();
  var month=1;
  var date=1;
  var hh=0;
  var mm=0;
  var ss=0;
  var ampm="";
  while (i_format < format.length) {
    // Get next token from format string
    c=format.charAt(i_format);
    token="";
    while ((format.charAt(i_format)==c) && (i_format < format.length)) {
      token += format.charAt(i_format++);
    }
    // Extract contents of value based on format token
    if (token=="yyyy" || token=="yy" || token=="y") {
      if (token=="yyyy") {
        x=4;y=4;
      }
      if (token=="yy") {
        x=2;y=2;
      }
      if (token=="y") {
        x=2;y=4;
      }
      year=this.getInt(val,i_val,x,y);
      if (year==null) {
        return null;
      }
      i_val += year.length;
      if (year.length==2) {
        if (year > 70) {
          year=1900+(year-0);
        }
        else {
          year=2000+(year-0);
        }
      }
    }
    else if (token=="MMM" || token=="NNN"){
      month=0;
      var names = (token=="MMM"?(Date.monthNames.concat(Date.monthAbbreviations)):Date.monthAbbreviations);
      for (var i=0; i<names.length; i++) {
        var month_name=names[i];
        if (val.substring(i_val,i_val+month_name.length).toLowerCase()==month_name.toLowerCase()) {
          month=(i%12)+1;
          i_val += month_name.length;
          break;
        }
      }
      if ((month < 1)||(month>12)){
        return null;
      }
    }
    else if (token=="EE"||token=="E"){
      var names = (token=="EE"?Date.dayNames:Date.dayAbbreviations);
      for (var i=0; i<names.length; i++) {
        var day_name=names[i];
        if (val.substring(i_val,i_val+day_name.length).toLowerCase()==day_name.toLowerCase()) {
          i_val += day_name.length;
          break;
        }
      }
    }
    else if (token=="MM"||token=="M") {
      month=this.getInt(val,i_val,token.length,2);
      if(month==null||(month<1)||(month>12)){
        return null;
      }
      i_val+=month.length;
    }
    else if (token=="dd"||token=="d") {
      date=this.getInt(val,i_val,token.length,2);
      if(date==null||(date<1)||(date>31)){
        return null;
      }
      i_val+=date.length;
    }
    else if (token=="hh"||token=="h") {
      hh=this.getInt(val,i_val,token.length,2);
      if(hh==null||(hh<1)||(hh>12)){
        return null;
      }
      i_val+=hh.length;
    }
    else if (token=="HH"||token=="H") {
      hh=this.getInt(val,i_val,token.length,2);
      if(hh==null||(hh<0)||(hh>23)){
        return null;
      }
      i_val+=hh.length;
    }
    else if (token=="KK"||token=="K") {
      hh=this.getInt(val,i_val,token.length,2);
      if(hh==null||(hh<0)||(hh>11)){
        return null;
      }
      i_val+=hh.length;
      hh++;
    }
    else if (token=="kk"||token=="k") {
      hh=this.getInt(val,i_val,token.length,2);
      if(hh==null||(hh<1)||(hh>24)){
        return null;
      }
      i_val+=hh.length;
      hh--;
    }
    else if (token=="mm"||token=="m") {
      mm=this.getInt(val,i_val,token.length,2);
      if(mm==null||(mm<0)||(mm>59)){
        return null;
      }
      i_val+=mm.length;
    }
    else if (token=="ss"||token=="s") {
      ss=this.getInt(val,i_val,token.length,2);
      if(ss==null||(ss<0)||(ss>59)){
        return null;
      }
      i_val+=ss.length;
    }
    else if (token=="a") {
      if (val.substring(i_val,i_val+2).toLowerCase()=="am") {
        ampm="AM";
      }
      else if (val.substring(i_val,i_val+2).toLowerCase()=="pm") {
        ampm="PM";
      }
      else {
        return null;
      }
      i_val+=2;
    }
    else {
      if (val.substring(i_val,i_val+token.length)!=token) {
        return null;
      }
      else {
        i_val+=token.length;
      }
    }
  }
  // If there are any trailing characters left in the value, it doesn't match
  if (i_val != val.length) {
    return null;
  }
  // Is date valid for month?
  if (month==2) {
    // Check for leap year
    if ( ( (year%4==0)&&(year%100 != 0) ) || (year%400==0) ) { // leap year
      if (date > 29){
        return null;
      }
    }
    else {
      if (date > 28) {
        return null;
      }
    }
  }
  if ((month==4)||(month==6)||(month==9)||(month==11)) {
    if (date > 30) {
      return null;
    }
  }
  // Correct hours value
  if (hh<12 && ampm=="PM") {
    hh=hh-0+12;
  }
  else if (hh>11 && ampm=="AM") {
    hh-=12;
  }
  return new Date(year,month-1,date,hh,mm,ss);
}

// Format a date into a string using a given format string
Date.prototype.format = function(format) {
  format=format+"";
  var result="";
  var i_format=0;
  var c="";
  var token="";
  var y=this.getYear()+"";
  var M=this.getMonth()+1;
  var d=this.getDate();
  var E=this.getDay();
  var H=this.getHours();
  var m=this.getMinutes();
  var s=this.getSeconds();
  var yyyy,yy,MMM,MM,dd,hh,h,mm,ss,ampm,HH,H,KK,K,kk,k;
  // Convert real date parts into formatted versions
  var value=new Object();
  if (y.length < 4) {
    y=""+(+y+1900);
  }
  value["y"]=""+y;
  value["yyyy"]=y;
  value["yy"]=y.substring(2,4);
  value["M"]=M;
  value["MM"]=Date.LZ(M);
  value["MMM"]=Date.monthNames[M-1];
  value["NNN"]=Date.monthAbbreviations[M-1];
  value["d"]=d;
  value["dd"]=Date.LZ(d);
  value["E"]=Date.dayAbbreviations[E];
  value["EE"]=Date.dayNames[E];
  value["H"]=H;
  value["HH"]=Date.LZ(H);
  if (H==0){
    value["h"]=12;
  }
  else if (H>12){
    value["h"]=H-12;
  }
  else {
    value["h"]=H;
  }
  value["hh"]=Date.LZ(value["h"]);
  value["K"]=value["h"]-1;
  value["k"]=value["H"]+1;
  value["KK"]=Date.LZ(value["K"]);
  value["kk"]=Date.LZ(value["k"]);
  if (H > 11) {
    value["a"]="PM";
  }
  else {
    value["a"]="AM";
  }
  value["m"]=m;
  value["mm"]=Date.LZ(m);
  value["s"]=s;
  value["ss"]=Date.LZ(s);
  while (i_format < format.length) {
    c=format.charAt(i_format);
    token="";
    while ((format.charAt(i_format)==c) && (i_format < format.length)) {
      token += format.charAt(i_format++);
    }
    if (value[token] != null) {
      result=result + value[token];
    }
    else {
      result=result + token;
    }
  }
  return result;
}


/* ----- ajax ----- */
	var codeTrackerNumber = 0;
	var imageName //= "CoregImages[0]"

	CoregImages = new Array()
	CoregValidationArray = new Array()

	//DOCoregs();
	var indexValidation = -1;
	var j=-1;
	function DOCoregs(URL)
	{
		j++;

		CoregImages[j] = new Image(1,1)
		CoregImages[j].src = encodeURI(URL)
		imageName = "CoregImages["+j+"]"
		loopImgOK(CoregImages[j]);
		
		//document.write(" ") 

		//alert(encodeURI(URL))
	}

	function loopImgOK(img, i) {
		if (!isImageOk(img)){
			setTimeout('loopImgOK('+ imageName +');',1000);
		}
		else
		{
			indexValidation++;
			CoregValidationArray[indexValidation] = "complete"
		}
	}




	function isImageOk(img) {
		// During the onload event, IE correctly identifies any images
		// that weren't downloaded as not complete. Others should too.
		// Gecko-based browsers act like NS4 in that they report this
		// incorrectly: they always return true.
		if (!img.complete) {
			//alert('n');
			return false;
		}


		//alert('o');

		// No other way of checking: assume it's ok.
		return true;
	}

	/* fct for popup window */
	function openf(url)
	{
		window.open(url,null,"height=500,width=700,status=yes,toolbar=no,menubar=no,location=no,scrollbars=yes");
	}

/* --------------- delay submit ------------------- */
	function waitThenSubmit(sec) 
	{  
		//setTimeout("document.forms[0].submit();", sec * 1000);  
		//return false;
		
		if (CoregValidationArray.length != howManyProgramsChecked())
		{
			setTimeout("document.forms[0].submit();", sec * 1000);  
			//waitThenSubmit(sec);  
			return false;
		}	
		
	}

	// submit
	function howManyProgramsChecked()
	{
		var programNumbers = -1;
		
		var alltags=document.getElementsByTagName("*")

		for (i=0; i<alltags.length; i++)
		{
			var nameTag = alltags[i].getAttribute('id')

			if(nameTag != null && nameTag.indexOf('Div') == 0 && nameTag.indexOf('_') == -1)
			{
				var ob1 = new MyClass();

				ob1.name = alltags[i].getAttribute('id')

				if (document.getElementById(ob1.name + "_yes").checked == true )
				{
					programNumbers++;
				}
			 }
		}
		
		return programNumbers;
	}


	function helpSelectMostFavoritePrograms(howmany)
	{
		if(document.getElementById("chkHelpPrograms").checked == true)
		{
			for(i=1; i <= arrayDivs.length; i++)
			{
				var div_name = "Div" + i
		     		
				if(document.getElementById(div_name).style.display == "block")
				{
				 	if(document.getElementById(div_name + "_yes").checked == true)
				 	{
				 		document.getElementById(div_name + "_yes").checked = false;
				 		progNumbers++;
				 	}
				}
			}
		
			var progNumbers = 0;
			
			if(howmany > how_many_coreg_on_page)
			{
				howmany = how_many_coreg_on_page;
			}
//alert('prognumbers: ' + progNumbers);
//alert('howmany: ' + howmany);
			
			while (progNumbers < howmany)
			{
				var rand_no = Math.random();
				rand_no = rand_no * arrayDivs.length;
				rand_no = Math.ceil(rand_no);
				
				var div_name = "Div" + rand_no;

//alert('div_name' + document.getElementById(div_name) + ' -> ' + document.getElementById(div_name).style.display);
		     		
				if(document.getElementById(div_name).style.display == "block")
				{
				 	if(document.getElementById(div_name + "_yes").checked != true)
				 	{
				 		document.getElementById(div_name + "_yes").checked = true;
				 		progNumbers++;
				 	}
				}
				
			}
		}
	}