// JS Calendar
var calendar = null; // remember the calendar object so that we reuse
// it and avoid creating another

// This function gets called when an end-user clicks on some date
function selected(cal, date) {
	cal.sel.value = date; // just update the value of the input field
}

// And this gets called when the end-user clicks on the _selected_ date,
// or clicks the "Close" (X) button.  It just hides the calendar without
// destroying it.
function closeHandler(cal) {
	cal.hide();			// hide the calendar

	// don't check mousedown on document anymore (used to be able to hide the
	// calendar when someone clicks outside it, see the showCalendar function).
	Calendar.removeEvent(document, "mousedown", checkCalendar);
}

// This gets called when the user presses a mouse button anywhere in the
// document, if the calendar is shown.  If the click was outside the open
// calendar this function closes it.
function checkCalendar(ev) {
	var el = Calendar.is_ie ? Calendar.getElement(ev) : Calendar.getTargetElement(ev);
	for (; el != null; el = el.parentNode)
	// FIXME: allow end-user to click some link without closing the
	// calendar.  Good to see real-time stylesheet change :)
	if (el == calendar.element || el.tagName == "A") break;
	if (el == null) {
		// calls closeHandler which should hide the calendar.
		calendar.callCloseHandler(); Calendar.stopEvent(ev);
	}
}

// This function shows the calendar under the element having the given id.
// It takes care of catching "mousedown" signals on document and hiding the
// calendar if the click was outside.
function showCalendar(id) {
	var el = document.getElementById(id);
	if (calendar != null) {
		// we already have one created, so just update it.
		calendar.hide();		// hide the existing calendar
		calendar.parseDate(el.value); // set it to a new date
	} else {
		// first-time call, create the calendar
		var cal = new Calendar(true, null, selected, closeHandler);
		calendar = cal;		// remember the calendar in the global
		cal.setRange(1900, 2070);	// min/max year allowed
		calendar.create();		// create a popup calendar
		calendar.parseDate(el.value); // set it to a new date
	}
	calendar.sel = el;		// inform it about the input field in use
	calendar.showAtElement(el);	// show the calendar next to the input field

	// catch mousedown on the document
	Calendar.addEvent(document, "mousedown", checkCalendar);
	return false;
}

/**
* Move a select item(s) from one list to another
*/
function movSelectedToList( frmName, srcListName, tgtListName ) {
	var form = eval( 'document.' + frmName ); 
	var srcList = eval( 'form.' + srcListName );
	var tgtList = eval( 'form.' + tgtListName );
	var srcLen = srcList.length;
	var tgtLen = tgtList.length;
	var tgt = "x";  
	//build array of target items
	for (var i=tgtLen-1; i > -1; i--) {
		tgt += "," + tgtList.options[i].value + ","
	}
	//Pull selected resources and add them to list
	
  for (var i=0; i < srcLen; i++) {
		if (srcList.options[i].selected && tgt.indexOf( "," + srcList.options[i].value + "," ) == -1) {
			opt = new Option( srcList.options[i].text, srcList.options[i].value );
			tgtList.options[tgtList.length] = opt;
			srcList.options[i] = null;
			movSelectedToList( frmName, srcListName, tgtListName );
		}else {
		  if (srcList.options[i].selected && tgt.indexOf( "," + srcList.options[i].value + "," ) > -1){
		    srcList.options[i] = null;
		    movSelectedToList( frmName, srcListName, tgtListName );
		  }
		}
	}
}

function moveInList( frmName, srcListName, index, to) {
	var form = eval( 'document.' + frmName );
	var srcList = eval( 'form.' + srcListName );
	var total = srcList.options.length-1;

	if (index == -1) {
		return false;
	}
	if (to == +1 && index == total) {
		return false;
	}
	if (to == -1 && index == 0) {
		return false;
	}

	var items = new Array;
	var values = new Array;

	for (i=total; i >= 0; i--) {
		items[i] = srcList.options[i].text;
		values[i] = srcList.options[i].value;
	}
	for (i = total; i >= 0; i--) {
		if (index == i) {
			srcList.options[i + to] = new Option(items[i],values[i], 0, 1);
			srcList.options[i] = new Option(items[i+to], values[i+to]);
			i--;
		} else {
			srcList.options[i] = new Option(items[i], values[i]);
	   }
	}
	srcList.focus();
	return true;
}


//validate email
function checkValidation ( addressField ) {
    if ( stringEmpty ( addressField.value ) )
        alert ( "Error! There is no E-Mail address entered" );
    else if ( noAtSign ( addressField.value ) )
        alert ( "Error! The E-Mail address does not contain an '@' character" );
    else if ( nothingBeforeAt ( addressField.value ) )
        alert ( "Error! An E-Mail address must contain at least one character before the '@' character" );
    else if ( noLeftBracket ( addressField.value ) )
        alert ( "Error! The E-Mail address contains a right square bracket ']',\nbut no corresponding left square bracket '['" );
    else if ( noRightBracket ( addressField.value ) )
        alert ( "Error! The E-Mail address contains a left square bracket '[',\nbut no corresponding right square bracket ']'" );
    else if ( noValidPeriod ( addressField.value ) )
        alert ( "Error! An E-Mail address must contain a period ('.') character" );
    else if ( noValidSuffix ( addressField.value ) )
        alert ( "Error! An E-Mail address must contain a two or three character suffix" );
    else
        return (true);

    return ( false );
}

function linkCheckValidation ( formField ) {
    if ( checkValidation ( formField ) == true ) {
        alert ( 'E-Mail Address Validates OK' );
    }

    return ( false );
}

function stringEmpty ( address ) {
    // CHECK THAT THE STRING IS NOT EMPTY
    if ( address.length < 1 ) {
        return ( true );
    } else {
        return ( false );
    }
}

function noAtSign ( address ) {
    // CHECK THAT THERE IS AN '@' CHARACTER IN THE STRING
    if ( address.indexOf ( '@', 0 ) == -1 ) {
        return ( true )
    } else {
        return ( false );
    }
}

function nothingBeforeAt ( address ) {
    // CHECK THERE IS AT LEAST ONE CHARACTER BEFORE THE '@' CHARACTER
    if ( address.indexOf ( '@', 0 ) < 1 ) {
        return ( true )
    } else {
        return ( false );
    }
}

function noLeftBracket ( address ) {
    // IF EMAIL ADDRESS IN FORM 'user@[255,255,255,0]', THEN CHECK FOR LEFT BRACKET
    if ( address.indexOf ( '[', 0 ) == -1 && address.charAt ( address.length - 1 ) == ']' ) {
        return ( true )
    } else {
        return ( false );
    }
}

function noRightBracket ( address ) {
    // IF EMAIL ADDRESS IN FORM 'user@[255,255,255,0]', THEN CHECK FOR RIGHT BRACKET
    if ( address.indexOf ( '[', 0 ) > -1 && address.charAt ( address.length - 1 ) != ']' ) {
        return ( true );
    } else {
        return ( false );
    }
}

function noValidPeriod ( address ) {
    // IF EMAIL ADDRESS IN FORM 'user@[255,255,255,0]', THEN WE ARE NOT INTERESTED
    if ( address.indexOf ( '@', 0 ) > 1 && address.charAt ( address.length - 1 ) == ']' )
        return ( false );

    // CHECK THAT THERE IS AT LEAST ONE PERIOD IN THE STRING
    if ( address.indexOf ( '.', 0 ) == -1 )
        return ( true );

    return ( false );
}

function noValidSuffix ( address ) {
    // IF EMAIL ADDRESS IN FORM 'user@[255,255,255,0]', THEN WE ARE NOT INTERESTED
    if ( address.indexOf ( '@', 0 ) > 1 && address.charAt ( address.length - 1 ) == ']' )
        return ( false );

    // CHECK THAT THERE IS A TWO OR THREE CHARACTER SUFFIX AFTER THE LAST PERIOD
    var len = address.length;
    var pos = address.lastIndexOf ( '.', len - 1 ) + 1;
    if ( ( len - pos ) < 2 || ( len - pos ) > 3 ) {
        return ( true );
    } else {
        return ( false );
    }
}

function submitbutton(pressbutton) {
	var form = document.adminForm;
			// do field validation
	if (noAtSign(form.email.value)) {
		alert ( "Format email incorrect. Merci de vérifier" );
	} else if (nothingBeforeAt (form.email.value))	{
		alert ( "Format email incorrect. Merci de vérifier" );
	} else if (noLeftBracket(form.email.value))	{	
		alert ( "Format email incorrect. Merci de vérifier" );
	} else if (noRightBracket(form.email.value))	{	
		alert ( "Format email incorrect. Merci de vérifier" );	
	} else if (noValidPeriod(form.email.value))	{	
		alert ( "Format email incorrect. Merci de vérifier" );
	} else if (noValidSuffix(form.email.value))	{		
		alert ( "Format email incorrect. Merci de vérifier" );
	} else if (form.password.value.length<6) {
    	alert( "Le mot de passe doit contenir au minimum 6 caractères" );
	} else if (form.password.value != form.password2.value) {
		alert( "La confirmation du mot de passe a échoué. Merci de réessayer" );
	} else {
		form.submit();
	}
}

function message() {
	alert('A message has sent to your email. check for active your account !');
	window.location = "index.php";
}

function fill_category($id,$theclass) {
	var allHTMLTags = document.getElementsByTagName("*");
	for (i=0; i < allHTMLTags.length; i++) {
		if (allHTMLTags[i].className == $theclass) {
			allHTMLTags[i].style.display = "none";
		}	
	}	
	var adiv =  document.getElementById("category" + $id)
	adiv.style.display = "block";
}

function toggleUpdate(topCheckbox){  
	var rows=document.getElementsByTagName('input');
	for (f=0;f<rows.length;f++){
		checkbox=rows[f];
		if (checkbox && checkbox.type=='checkbox'){			
			if (checkbox.id.charAt(0)=='c'){
				if (topCheckbox.checked){
					checkbox.checked=true;
				} else {
					checkbox.checked=false;
				}
			}
		}
	}	
}

function formSubmit(option) {
	document.getElementById('option').value = option;
	if(option == 'delete') {
		var r=confirm("Are you sure you want to delete this campaign?")
		if (r==false){
			return;
		}
	}
	document.forms[0].submit();
}

function deleteCampaign(id) {
	var r=confirm("Are you sure you want to delete this campaign?")
	if (r==false){
		return;
	}
	id_campaign = 'campaign'+id;
	document.getElementById(id_campaign).checked = 'checked';
	document.getElementById('option').value = 'delete';
	document.forms[0].submit();
}

function saveAdticle(task) {
	document.getElementById('task').value = task;
	document.forms[0].submit();
}

function check_avaiable(siteurl){	
	abc = $("sub_domain").value;	
	urlrequest = siteurl + "check_avaiable.php?subdomain="+abc;	
	new Ajax(urlrequest, {
		method: 'get',
		update: $('check_avaiable')
	}).request();
}

function update_nearestcity(siteurl){	
	abc = $("shop_city").value;	
	urlrequest = siteurl + "update_nearestcity.php?shop_city="+abc;	
	new Ajax(urlrequest, {
		method: 'get',
		update: $('nearest_town')
	}).request();
}

function update_price(siteurl,id_account) {
	pack = document.getElementById('ads_pack').value;
	month = document.getElementById('duration_month').value;
	urlrequest = siteurl + "update_price.php?month="+month+"&pack="+pack+"&id_account="+id_account;	
	new Ajax(urlrequest, {
		method: 'get',
		update: $('ads_cost')
	}).request();	
}

function checkAll( n, fldName ) {
  if (!fldName) {
     fldName = 'cb';
  }
	var f = document.adminForm;
	var c = f.toggle.checked;
	var n2 = 0;
	for (i=0; i < n; i++) {
		cb = eval( 'f.' + fldName + '' + i );
		if (cb) {
			cb.checked = c;
			n2++;
		}
	}
	if (c) {
		document.adminForm.boxchecked.value = n2;
	} else {
		document.adminForm.boxchecked.value = 0;
	}
}

function isChecked(isitchecked){
	if (isitchecked == true){
		document.adminForm.boxchecked.value++;
	}
	else {
		document.adminForm.boxchecked.value--;
	}
}


function delete_button() {
	if(confirm('are you sure ?')) {
		
		document.adminForm.task.value='remove'; 
		
		document.adminForm.submit();
		
	}
}

function download1() {
	var url = document.adminForm.SHO_LOGO.value;
	window.open(url);
	
}

function submit_button(task) {
	document.adminForm.task.value=task; 
	document.adminForm.submit();
}

function comfirm_submit_button(msg) {
	var radioobj = document.adminForm.CAM_STATUS;
	if(radioobj[1].checked) {
		if(confirm(msg)) {
			submit_button('save');
		}
	} else {
		submit_button('save');
	}
}

function comfirm_cancel_button(msg,url) {
	if(confirm(msg)) {
		window.location=url;;
	} 
}


function confirm_publish(msg) {
	if(confirm(msg)) {
		  return true;
	} else
	    return false;
}

function popup(mylink, windowname)
{
if (! window.focus)return true;
var href;
if (typeof(mylink) == 'string')
   href=mylink;
else
   href=mylink.href;
window.open(href, windowname, 'width=600,height=400,scrollbars=yes');
return false;
}

function submitform(pressbutton){
	if (pressbutton) {
		document.adminForm.task.value=pressbutton;
	}
	if (typeof document.adminForm.onsubmit == "function") {
		document.adminForm.onsubmit();
	}
	document.adminForm.submit();
}

// needed for Table Column ordering
function tableOrdering( order, dir, task ) {
	var form = document.adminForm;

	form.filter_order.value 	= order;
	form.filter_order_Dir.value	= dir;
	submitform( task );
}