
//BROWSER DETECTION
var ns4 = document.layers;
var ns6 = document.getElementById && !document.all;
var ie4 = document.all;
 

//FIELDS
function imgField(field, img){
	if(field.value == "cuvant cheie") field.value = "";
	field.style.backgroundImage = "url("+img+")";
	if(img.indexOf("over")>0) bgcolor = "#ffffe9";
						 else bgcolor = "#FFFFFF";
	field.style.backgroundColor = bgcolor;
}

function imgField2(field, img){
	//bgcolor
		bgcolor = "#FFFFFF";
		field.style.backgroundColor = bgcolor;
		
	//border color
		if(img == "over") border_color = "#000000";
					 else border_color = "#b4b4b4";
		field.style.borderColor = border_color;
}

//BUTS
function imgBut(but, img){
	but.src = img;
}


//Reset Form
function resetForm(formName){
	if(ns6) form = eval("document.getElementById('"+formName+"')");
	else if(ns4) form = eval("document."+formName);
	else form = eval("document.all."+formName);
	form.reset();
}



function focus2(field){
	if(field.value == 0) field.value = '';
}	


function blur2(field){
	if(field.value == '') field.value = '0';
}	


function fieldValue(field_name){
	if(ns6) field = eval("document.getElementById('"+field_name+"')");
	else if(ns4) field = eval("document."+field_name);
	else field = eval("document.all."+field_name);
	return field.value;
}

function setFieldValue(field_name, val){
	if(ns6) field = eval("document.getElementById('"+field_name+"')");
	else if(ns4) field = eval("document."+field_name);
	else field = eval("document.all."+field_name);
	return field.value;
	field.value = val;
}

function writeIn(field_name, val){
	if(ns6) field = eval("document.getElementById('"+field_name+"')");
	else if(ns4) field = eval("document."+field_name);
	else field = eval("document.all."+field_name);
	field.innerHTML = val;
}



function formatNR(nr, dec)
{
str = "" + Math.round(eval(nr) * Math.pow(10,dec));
while(str.length < dec)
	str = "0" + str;
decidx = str.length - dec;
tmp = str.substring(0,decidx);
if(tmp == '')
	tmp = '0';
if(dec > 0)
	tmp = tmp + '.' + str.substring(decidx, str.length);
return(tmp);
}



function getkey(e)
{
if (window.event)
   return window.event.keyCode;
else if (e)
   return e.which;
else
   return null;
}


function goodchars(e, goods)
{
var key, keychar;
key = getkey(e);
if (key == null) return true;

// get character
keychar = String.fromCharCode(key);
keychar = keychar.toLowerCase();
goods = goods.toLowerCase();

// check goodkeys
if (goods.indexOf(keychar) != -1)
	return true;

// control keys
if ( key==null || key==0 || key==8 || key==9 || key==13 || key==27 )
   return true;

// else return false
return false;
}



function getSelectedRadio(buttonGroup) {
   // returns the array number of the selected radio button or -1 if no button is selected
   if (buttonGroup[0]) { // if the button group is an array (one button is not an array)
      for (var i=0; i<buttonGroup.length; i++) {
         if (buttonGroup[i].checked) {
            return i
         }
      }
   } else {
      if (buttonGroup.checked) { return 0; } // if the one button is checked, return zero
   }
   // if we get to this point, no radio button is selected
   return -1;
} // Ends the "getSelectedRadio" function

function getSelectedRadioValue(buttonGroup) {
   // returns the value of the selected radio button or "" if no button is selected
   var i = getSelectedRadio(buttonGroup);
   if (i == -1) {
      return "";
   } else {
      if (buttonGroup[i]) { // Make sure the button group is an array (not just one button)
         return buttonGroup[i].value;
      } else { // The button group is just the one button, and it is checked
         return buttonGroup.value;
      }
   }
} // Ends the "getSelectedRadioValue" function

function getSelectedCheckbox(buttonGroup) {
   // Go through all the check boxes. return an array of all the ones
   // that are selected (their position numbers). if no boxes were checked,
   // returned array will be empty (length will be zero)
   var retArr = new Array();
   var lastElement = 0;
   if (buttonGroup[0]) { // if the button group is an array (one check box is not an array)
      for (var i=0; i<buttonGroup.length; i++) {
         if (buttonGroup[i].checked) {
            retArr.length = lastElement;
            retArr[lastElement] = i;
            lastElement++;
         }
      }
   } else { // There is only one check box (it's not an array)
      if (buttonGroup.checked) { // if the one check box is checked
         retArr.length = lastElement;
         retArr[lastElement] = 0; // return zero as the only array value
      }
   }
   return retArr;
} // Ends the "getSelectedCheckbox" function

function getSelectedCheckboxValue(buttonGroup) {
   // return an array of values selected in the check box group. if no boxes
   // were checked, returned array will be empty (length will be zero)
   var retArr = new Array(); // set up empty array for the return values
   var selectedItems = getSelectedCheckbox(buttonGroup);
   if (selectedItems.length != 0) { // if there was something selected
      retArr.length = selectedItems.length;
      for (var i=0; i<selectedItems.length; i++) {
         if (buttonGroup[selectedItems[i]]) { // Make sure it's an array
            retArr[i] = buttonGroup[selectedItems[i]].value;
         } else { // It's not an array (there's just one check box and it's selected)
            retArr[i] = buttonGroup.value;// return that value
         }
      }
   }
   return retArr;
} // Ends the "getSelectedCheckBoxValue" function
  

//Email Validation
function emailValid(email)
{
  var result = false
  var theStr = new String(email)
  var index = theStr.indexOf("@");
  var hacked = theStr.indexOf(")");
  if (index > 0)
  {
    var pindex = theStr.indexOf(".",index);
    if ((pindex > index+1) && (theStr.length > pindex+1))
	result = true;
  }

  if (hacked > 0){
   result = false;
  }
  return result;
}

function formSubmit(form, act){
	document.forms[form].action = act;
	document.forms[form].submit();
}





function fieldOb(field_name){
	if(ns6) field = eval("document.getElementById('"+field_name+"')");
	else if(ns4) field = eval("document."+field_name);
	else field = eval("document.all."+field_name);
	return field;
}

function changeRowColor(row, color){
	rOb = fieldOb(row);
	rOb.bgColor = color;  
}



var incomplete_fields = '';


//Validates a field
function ValidateField(elem, name){
	if((elem.value == '')||(elem.value == 0))	{
    		alert('INCOMPLETE!\n\nThe following fields have not been filled: \n'+incomplete_fields);
    		elem.focus();
   	 		return(false);
   	}
	else if(name.indexOf('email') != -1){
			 	if(!emailValid(elem.value)){
					alert('Invalid E-mail address !');
					elem.focus();
   	 				return(false);
				}
	}
	return(true);
}

//Just Validates a field without (alert & focus)
function JustValidateField(elem){
	if((elem.value == '')||(elem.value == 0))	return(false);
	else if(name.indexOf('email') != -1){
			 	if(!emailValid(elem.value)){
   	 				return(false);
				}
	}
	return(true);
}


function BuildIncompleteFields(form, fields){
	incomplete_fields = '';

	mandatory_fields = fields.split(',');
	for(i=0; i<mandatory_fields.length; i++){
		//single field
		elem = eval('form.' + mandatory_fields[i]);
		if(!JustValidateField(elem, mandatory_fields[i])) incomplete_fields += ', ' + mandatory_fields[i];
	}//for

	incomplete_fields = incomplete_fields.substr(2, incomplete_fields.length-2);
}

//Validate form for Mandatory fields to be filled properly
function Validate(form, fields){
   	BuildIncompleteFields(form, fields);

	mandatory_fields = fields.split(',');
	for(i=0; i<mandatory_fields.length; i++){
		
		if(mandatory_fields[i].indexOf('|')){
			//groupped fields (at least one of them must be filled/selected)
			mandatory_group_fields = mandatory_fields[i].split('|');
			valid = 0;
			for(j=0; j<mandatory_group_fields.length; j++){
				elem = eval('form.' + mandatory_group_fields[j]);
				if(ValidateField(elem, mandatory_group_fields[j]) ) valid = 1;
				else return(false);
			}
			if(!valid){
				//no fields filled
				elem = eval('form.' + mandatory_group_fields[0]);
				if(!ValidateField(elem, mandatory_group_fields[0])) return(false);
			}
			
		}else{
			//single field
			elem = eval('form.' + mandatory_fields[i]);
			if(!ValidateField(elem, mandatory_fields[i])) return(false);
		}
		
	}//for

	if (form.action.indexOf('index.php?checkout&step=3')>0){
	 var tt_size_x=230; // for tooltip X size
   var tt_size_y=80;  // for tooltip Y size
   var tt_pos_x=360; // for tooltip X postition
   var tt_pos_y=360; // for tooltip Y postition
   showPP("divwait",tt_size_x,tt_size_y,tt_pos_x,tt_pos_y);
	}
	
	return(true);
}

function GotoPage(pag, GET){
// delete 111 for work searcgpages
	if(ns6) form = eval("document.getElementById('frms111')");
	else if(ns4) form = eval("document.frms111");
	else form = eval("document.all.frms111");
	form.action = PHP_SELF + "?"+GET+"&pag="+pag;
	form.submit();
}


function ValidateLogin(form){
   	if(form.login_user.value == '')	{
    		alert('Insert Administrator!');
    		form.login_user.focus();
   	 	return(false);
   	}
   	if(form.login_pass.value == '')	{
    		alert('Insert Password!');
    		form.login_pass.focus();
   	 	return(false);
   	}
	return(true);
}

function ValidateLoginUser(form){
   	if(form.login_user.value == '')	{
   		alert('Insert Email Address!');
   		form.login_user.focus();
   	 	return(false);
   	}else if(!emailValid(form.login_user.value)){
   		alert('Invalid Email Address!');
   		form.login_user.focus();
   	 	return(false);
	}
   	if(form.login_pass.value == '')	{
   		alert('Insert Password!');
   		form.login_pass.focus();
   	 	return(false);
   	}
	return(true);
}



function checkFormPass(form){
   	if(form.pass_veche.value == '')	{
    		alert('Enter current password!');
    		form.pass_veche.focus();
   	 	return(false);
   	}
	
   	if(form.pass_noua_1.value == '')	{
    		alert('Enter new password!');
    		form.pass_noua_1.focus();
   	 	return(false);
   	}
	
   	if(form.pass_noua_2.value == '')	{
    		alert('Reenter new password!');
    		form.pass_noua_2.focus();
   	 	return(false);
   	}
	
   	if(form.pass_noua_1.value != form.pass_noua_2.value)	{
    		alert('Error! You have reentered a different new password!');
    		form.pass_noua_1.focus();
   	 	return(false);
   	}

	return(true);
}



function ValidateProduct(form){
	if(!Validate(form, 'name,price,price_currency')) return false;

	if(form.img.value != '') {
		allowed_file_types = 'jpg,gif,bmp,png';
		err_msg = 'Warning: Image file type not allowed. Only "'+allowed_file_types+'" extensions are allowed.';
		if(!ValidateFile(form, 'img')) return false;
	}
	
	if(form.img_medium.value != '') {
		allowed_file_types = 'jpg,gif,bmp,png';
		err_msg = 'Warning: Image file type not allowed. Only "'+allowed_file_types+'" extensions are allowed.';
		if(!ValidateFile(form, 'img')) return false;
	}
	
	if(form.img_large.value != '') {
		allowed_file_types = 'jpg,gif,bmp,png';
		err_msg = 'Warning: Image file type not allowed. Only "'+allowed_file_types+'" extensions are allowed.';
		if(!ValidateFile(form, 'img')) return false;
	}
	
	return true;
}

function ForgotPassword(){
	user = document.forms['formLogin'].login_user;
	form = document.forms['formLogin'];
	if(user.value == ''){
   		alert('First insert your email address you used for registration!');
   		user.focus();
	}else if(!emailValid(user.value)){
   		alert('Invalid email address!');
   		user.focus();
	}else{
		document.location = 'index.php?' + GET + "&forgot_password=" + escape(user.value);
	}
}


function ChangeOptions(opt){
   	opts = opt.split(',');
	
	for(i=0; i<4; i++){
		f = eval("document.forms['formProduct'].option"+(i+1));
		f.value = '';
	}
	
	for(i=0; i<opts.length; i++){
		f = eval("document.forms['formProduct'].option"+(i+1));
		f.value = opts[i];
	}
}

function AddToCartE1(id, show_options){
	if(!show_options) document.location='https://'+window.location.hostname+'/index.php?add_to_cart=' + id + '&currency=CAD&country=Canada';	
	else{
		opt = getSelectedRadioValue(document.forms['frmProd'].option);
		if(opt != '') opt =  opt;
		document.location='https://'+window.location.hostname+'/index.php?add_to_cart=' + id + '&option=' + opt + '&currency=CAD&country=Canada';
	}
}

function AddToCartE3(id, show_options){
	if(!show_options) document.location='https://'+window.location.hostname+'/index.php?add_to_cart=' + id + '&currency=USD&country=USA';
	else{
		opt = getSelectedRadioValue(document.forms['frmProd'].option);
		if(opt != '') opt = opt;
		document.location='https://'+window.location.hostname+'/index.php?add_to_cart=' + id + '&option=' + opt + '&currency=USD&country=USA';	
	}
}

function AddToCartE7(id, show_options){
	if(!show_options) document.location='https://'+window.location.hostname+'/index.php?add_to_cart=' + id + '&currency=CAD&country=Canada';
	else{
		opt = getSelectedRadioValue(document.forms['frmProd'].option);
		if(opt != '') opt = opt;
		document.location='https://'+window.location.hostname+'/index.php?add_to_cart=' + id + '&option=' + opt + '&currency=CAD&country=Canada';	
	}
}

function AddToOrder(order_id, id, show_options){
	if(!show_options) 
		window.opener.location='/edit_order='+order_id+'&add_prod=' + id;
	else{
		opt = getSelectedRadioValue(document.forms['frmProd'].option);
		if(opt != '') opt = '' + opt;
		//document.location='/add_to_cart/' + id + '/' + opt;	
		window.opener.location='/edit_order='+order_id+'&add_prod=' + id + '' + opt;
	}
	top.close();
}

function ExpressPurchase(id, show_options){
	if(!show_options) document.location='/express_purchase/' + id;	
	else{
		opt = getSelectedRadioValue(document.forms['frmProd'].option);
		if(opt != '') opt = '/' + opt;
		document.location='/express_purchase/' + id + '' + opt;	
	}
}

function ValidateFis(form, fis, type){
	if(form[fis].value == '') {
		alert('No file specified.');
		return false;
	}
	return true;
}



//BROWSER DETECTION
var ns4 = document.layers;
var ns6 = document.getElementById && !document.all;
var ie4 = document.all;
 


function DeselectLists(ck){
	if(getSelectedCheckboxValue(ck) == 1){
		//grades
		CONTROL = eval('document.formAdd.elements[15]');	
		for(var i = 0;i < CONTROL.length;i++) CONTROL.options[i].selected = false;
		//teachers
		CONTROL = eval('document.formAdd.elements[16]');	
		for(var i = 0;i < CONTROL.length;i++) CONTROL.options[i].selected = false;
		//students
		CONTROL = eval('document.formAdd.elements[18]');	
		for(var i = 0;i < CONTROL.length;i++) CONTROL.options[i].selected = false;
	}
}

function SelectList(){
	sel = 0;
	//grades
	CONTROL = eval('document.formAdd.elements[15]');	
	for(var i = 0;i < CONTROL.length;i++) 
		if(CONTROL.options[i].selected == true) sel = 1;
	//teachers
	CONTROL = eval('document.formAdd.elements[16]');	
	for(var i = 0;i < CONTROL.length;i++) 
		if(CONTROL.options[i].selected == true) sel = 1;
	//students
	CONTROL = eval('document.formAdd.elements[18]');	
	for(var i = 0;i < CONTROL.length;i++) 
		if(CONTROL.options[i].selected == true) sel = 1;
		
	ck = eval('document.formAdd.entire_school');
	if(sel)	ck.checked = false;
	else	ck.checked = true;
}


function SelectPeopleList(nr){
	CONTROL = eval('document.forms["formPost"].elements['+nr+']');	
	for(var i = 0;i < CONTROL.length;i++){
		CONTROL.options[i].selected = true;
	}
}

function DeselectPeopleList(nr){
	CONTROL = eval('document.forms["formPost"].elements['+nr+']');	
	for(var i = 0;i < CONTROL.length;i++){
		CONTROL.options[i].selected = false;
	}
}

function AddToPeopleList(nr){
	CONTROL = eval('document.forms["formPost"].elements['+nr+']');	
	VAL = document.forms["formPost"].email.value;
	if(VAL == '') {
		alert('Insert email address!');
		document.forms["formPost"].email.focus();
	}else if(!emailValid(VAL)) {
		alert('Invalid email address!');
		document.forms["formPost"].email.focus();
	}else{
		//verify if not already in list
		exists = 0;
		for(var i = 0;i < CONTROL.length;i++){
			if(CONTROL.options[i].value.toUpperCase() == VAL.toUpperCase()) exists = 1;
		}
		
		if(exists) alert('Email already in list!');
		else{
			var len = CONTROL.length++;
			CONTROL.options[len].value = VAL;
			CONTROL.options[len].text = VAL;
			CONTROL.options[len].selected = true;
			document.forms["formPost"].email.value = '';
			document.forms["formPost"].email.focus();
			//alert('Email added to list and selected.');
		}
	}
}

function ValidateFormMail(form, nr){
	CONTROL = eval('document.forms["formPost"].elements['+nr+']');	
	ok = 0;
	for(i=0; i<CONTROL.length; i++){
		if(CONTROL.options[i].selected == true) ok = 1;
	}
	if(ok == 0) {
		alert('Error: No email address selected from the list of receivers!');
		return false;
	}else if(form.email_from.value == ''){
		alert('Error: Sender Email empty!');
		form.email_from.focus();
		return false;
	}else if(form.subject.value == ''){
		alert('Error: Mail Subject empty!');
		form.subject.focus();
		return false;
	}
	
	return true;
}


function SendMails(nr){
	if(ValidateFormMail(document.forms['formPost'], nr)) 
		document.forms['formPost'].submit();
}

function AddEmailsToList(students, nr){
	if(students == ''){
		//alert('No emails.');
	}else{
		CONTROL = eval('document.forms["formPost"].elements['+nr+']');	
		emails = students.split(',');
	
		for(i=0; i<emails.length; i++){
			VAL = emails[i];
			if(VAL != ''){

				/*
				//verify if not already in list
				exists = 0;
				for(var i = 0;i < CONTROL.length;i++){
					if(CONTROL.options[i].value.toUpperCase() == VAL.toUpperCase()) exists = 1;
				}

				if(!exists){
					*/
					var len = CONTROL.length++;
					CONTROL.options[len].value = VAL;
					CONTROL.options[len].text = VAL;
					CONTROL.options[len].selected = true;
				//}
			}
		}
	}
}

function DeselectCombos(ids){
	ids = ids.split(',');
	for(i=0; i<ids.length; i++){
		DeselectPeopleList(ids[i]);
	}
}

function RemoveEmailsFromList(nr){
	CONTROL = eval('document.forms["formPost"].elements['+nr+']');	
	CONTROL.length = 0;
}

function SelectAllEmails(nr){
	CONTROL = eval('document.forms["formAdd"].elements['+nr+']');	
	for(var i = 0;i < CONTROL.length;i++){
		CONTROL.options[i].selected = true;
	}
}

function DeselectAllEmails(nr){
	CONTROL = eval('document.forms["formAdd"].elements['+nr+']');	
	for(var i = 0;i < CONTROL.length;i++){
		CONTROL.options[i].selected = false;
	}
}


function DateUnlimited(statuss){
	document.forms['frm'].start_date_year.disabled = statuss;
	document.forms['frm'].start_date_month.disabled = statuss;
	document.forms['frm'].start_date_day.disabled = statuss;
	document.forms['frm'].end_date_year.disabled = statuss;
	document.forms['frm'].end_date_month.disabled = statuss;
	document.forms['frm'].end_date_day.disabled = statuss;
}


function selShippingCountry(sel, nr){
	ob1 = fieldOb('tab_sh_1_'+nr);
	ob2 = fieldOb('tab_sh_2_'+nr);
	ob3 = fieldOb('tab_sh_3_'+nr);

	ob1.className = 'ascuns';
	ob2.className = 'ascuns';
	ob3.className = 'ascuns';

	if(sel == 'USA'){
		ob2.className = 'vizibil';
	}else if(sel == 'Canada'){
		ob3.className = 'vizibil';
	}else{
		ob1.className = 'vizibil';
	}
}


function calcShipping(){
	if(nrs > 1){
		// multiple shipping
		total = 0; 
		ship = 0;
		tax = 0;
		for(i=1; i<=nrs; i++){
			sob = eval('document.forms["frm"].shipping_method_'+i);
			sopt = getSelectedRadioValue(sob);
			ship1 = 0;
			tax1 = 0;
			if((sopt > 0) && (sopt<=7)){
				ship1 = sprice[i][sopt];
				ship1 = formatNR(ship1, 2)*1;
				ship += ship1;
				tax1 = (pprice[i] + ship1) * stax[i] / 100;
				tax1 = formatNR(tax1, 2)*1;
				tax += tax1;
			}
			total += pprice[i]*1 + ship1 + tax1;
		}
	}else{
		// shingle shipping
		sob = eval('document.forms["frm"].shipping_method_1');
		sopt = getSelectedRadioValue(sob);
		ship = sprice[1][sopt];
		ship = formatNR(ship, 2)*1;
		tax = (suma_partiala + ship) * stax[1] / 100;
		tax = formatNR(tax, 2)*1;
		total = suma_partiala + ship + tax;
	}
	
	writeIn('sp_shipping_amount', formatNR(ship, 2));
	writeIn('sp_tax_amount', formatNR(tax, 2));
	writeIn('sp_total_amount', formatNR(total, 2));
}

function ValidateCheckout3(form){
	if(nrs > 1){
		// multiple shipping
		for(i=1; i<=nrs; i++){
			sob = eval('document.forms["frm"].shipping_method_'+i);
			sopt = getSelectedRadioValue(sob);
			if((sopt > 0) && (sopt<=7)){
			}else{
				alert('Please select a shipping method for shipping address #'+i+'!');
				return false;
			}
		}
	}else{
		// shingle shipping
		sob = eval('document.forms["frm"].shipping_method_1');
		sopt = getSelectedRadioValue(sob);
		if((sopt > 0) && (sopt<=7)){
		}else{
			alert('Please select a shipping method!');
			return false;
		}
	}
	
	if (cc_opt=="cc"){
	 if(!Validate(form, 'cc_type,cc_nr,cc_mm,cc_yy')) return false;
	}
	return true;
}
