/******************************************
*  Copyright © 2010
******************************************
*  Author   : JAR
*  Company  : TC Partners
*  Date     : June 2010
*  Website  : http://www.ffgolf.org/
*  Project  : FF Golf WebSite
*  Version  : 1.0.0
******************************************/
 
// Variables
// ------------------
var mDepCodToSelect = "";
var mGlfCodToSelect = "";
var mTerCodToSelect = "";
var mHoleNumToSelect = "";

var INDEX_TYPE_OFFICIAL = 1;
var INDEX_TYPE_FRIENDLY = 2;

// Google maps constants
var mFranceCenterLat = 46.5;
var mFranceCenterLong = 2.2137490;

// Lang
// ------------------

var mGlobalLang = new Array();
mGlobalLang["ajax.call.error"] = "Une erreur est survenue lors de l'appel Ajax";
mGlobalLang["error.default"] = "Une erreur inattendue est survenue, merci de réessayer ultérieurement";
mGlobalLang["ajax.error.catched"] = "Cette opération ne peut être effectuée pour le moment, merci de réessayer ultérieurement.\nMerci de votre compréhension.";
mGlobalLang["google.map.no.point"]  = "Il n'y a aucun point à visualiser sur la carte.";

mGlobalLang["error.no.file"] = "Aucun fichier !";
mGlobalLang["error.file.too.big"] = "La photo sélectionnée est trop volumineuse (Taille maximale: 2Mo)";
mGlobalLang["error.file.ext"] = "La photo selectionnée est de type incorrect (Extentions autorisées: JPEG / JPG)";
mGlobalLang["error.file.upload"] = "Impossible d'uploader l'image sélectionnée";
mGlobalLang["error.image.too.small"] = "La photo doit être plus grande que 150px de largeur sur 200px de hauteur";
mGlobalLang["error.image.quotas"] = "Le nombre de photos est limité !";
mGlobalLang["error.file.does.not.exist"] = "L'image demandée n'existe pas.";
mGlobalLang["error.thumb.does.not.exist"] = "La miniature de l'image demandée n'existe pas.";

mGlobalLang["error.date.format"] = "Merci de vérifier la date saisie (Format JJ/MM/AAAA)";
mGlobalLang["error.email.format"] = "Merci de vérifier l'adresse email.";
mGlobalLang["error.phone.format"] = "Votre numéro de téléphone doit se composer de 10 chiffres.";
mGlobalLang["error.date.passed"] = "Merci de choisir une date supérieure à la date du jour.";

mGlobalLang["missing.department"] = "Merci de choisir un 'Département'";
mGlobalLang["missing.golf"] = "Merci de choisir un 'Golf'";
mGlobalLang["missing.round"] = "Merci de choisir un 'Parcours'";

mGlobalLang["remark.sent.successfully"] = "Votre message a été envoyé avec succès.\nNous traiterons votre demande dans les meilleurs délais.\n\nCordialement. L'Equipe ffgolf";
mGlobalLang["remark.no.email"] = "Votre adresse email doit être valide pour pouvoir envoyer une remarque ou une suggestion.\nMerci de compléter votre email dans la partie 'Mon Profil' / 'Mes Informations Personnelles'.\n\nCordialement. L'Equipe ffgolf";

mGlobalLang["dev.no.nine.holes"] = "Il n'existe aucun parcours de 18 trous pour le golf selectionné.\nDans les jours à venir, les parcours de 9 trous seront disponibles.\n\nCordialement. L'Equipe ffgolf";
mGlobalLang["remark.and.suggestion.empty"] = "Merci de saisir une remarque et / ou une suggestion avant d'envoyer le message.\n\nCordialement. L'Equipe ffgolf";

// JQuery
// ----------------------

$(document).ready(function(){

	// --------------------
	// GENERAL
	// --------------------
	
	// Preload Images
	if (document.images){
		
		lPreloadImages = new Image();
		
		// set image url
		lImageList = new Array();
		/*
		lImageList[0] = "../img/button_02.png";
		lImageList[1] = "../img/button_03.png";
		lImageList[2] = "../img/button_02_hover.png";
		lImageList[3] = "../img/button_03_hover.png";
		lImageList[4] = "../img/notification.png";
		lImageList[5] = "../img/notification_hover.png";
		*/
		
		var i = 0;
		/*
		for(i=0; i<=lImageList.length; i++) {
			lPreloadImages.src = lImageList[i];
		}
		*/
		
    }
	
	updateAlternatingColor();
	
	// --------------------
	// Colorbox
	// --------------------
	$(".close_colorbox").click(function(){
		$.fn.colorbox.close();
	});
	
	$("#remark_button").colorbox({
		href:"#remark_panel",
		width:"750px"
	});
	
	// --------------------
	// Forms
	// --------------------
	
	var lOptionsFormSendRemark = {
		dataType: 'xml',
		beforeSubmit: function(formArray, jqForm) {
			if( !isDefined("remark_content") & !isDefined("remark_content")){
				alert(mGlobalLang["remark.and.suggestion.empty"]);
				return false;
			}else{
				return true;
			}
		},
		success: function(pXml) {
			if (pXml == null) {
				alert(mGlobalLang["ajax.call.error"] + " 'send_remark_form'");
			} else {
				if(pXml.getElementsByTagName('e').length != 0){
					var lError = pXml.getElementsByTagName('e')[0].getAttribute('id');
					switch(lError){
						case "1":{
							alert(mGlobalLang["remark.no.email"]);
							break;
						}
						default:{
							alert(mGlobalLang["error.default"]);
							break;
						}
					}
				}else{
					
					// Sent successfull
					alert(mGlobalLang["remark.sent.successfully"]);
					
					// Close panel
					$.fn.colorbox.close();
				}
			}
		}
	};
	
    $('#send_remark_form').ajaxForm(lOptionsFormSendRemark);
	
	// --------------------
	// Navigation Menu
	// --------------------
	var nav = $(document.getElementById('navigation'));
	$("> li",nav).click(function(){
		$("> li.active_state",nav).removeClass("active_state").addClass("default_state");
		$(this).removeClass("default_state").addClass("current active_state");
	});

	
	// Notification
	$(".notification").bind('click', function(){		
		window.location = "notification.php?id=" + $(this).attr("id").replace("notification_", "");
		return false;
	});
	
	// --------------------
	// Switch France DOM TOM
	// --------------------
	$("#switch_france_domtom").toggle(
		function () {
			$("#map_france").css("display", "none");
			$("#map_domtom").css("display", "");
			$(this).html("Afficher la carte de France Métropolitaine");
		},
		function () {
			$("#map_france").css("display", "");
			$("#map_domtom").css("display", "none");
			$(this).html("Afficher la carte des DOM TOM");
		}
	);
	
	
	// --------------------
	// Golf Selection 
	// --------------------
	
	$("#favorite_round").change(function(){
		onChangeOnFavoriteRound($(this).val());
	});
	
	$("#department").change(function(){
		resetFavorite();
		onChangeOnDepartment($(this).val());
	});
	
	$("#golf").change(function(){
		resetFavorite();
		onChangeOnGolf($(this).val());
	});
	
	$("#round").change(function(){
		
		resetFavorite();
		
		var lTerCod = $(this).val();
		var lHoleNumber = $(this).find("option[value=" + $(this).val() + "]").attr("name");
		onChangeOnRound(lTerCod, lHoleNumber);
		
	});
	
	$("#hole_number").change(function(){
		onChangeOnHoleNumber($(this).val());
	});	
		
	// --------------------
	
	
	// IE6 Transparency Fix
	if ( $.browser.msie && ($.browser.version <= 6) ) {
		
		//$(".notification").supersleight({shim: '../img/x.gif'});
		//$(".button_03").supersleight({shim: '../img/x.gif'});
		//$(".button_02").supersleight({shim: '../img/x.gif'});
		
		/*
		
		// Button 03
		$(".button_03").bind("mouseenter", function() {
			$(this).css("background-image", "url('../img/button_03_hover.png')");
		});
		$(".button_03").bind("mouseleave", function() {
			$(this).css("background-image", "url('../img/button_03.png')");
		});
		
		// Button 02
		$(".button_02").bind("mouseenter", function() {
			$(this).css("background", "transparent url('../img/button_02.png') no-repeat");
		});
		$(".button_02").bind("mouseleave", function() {
			$(this).css("background", "transparent url('../img/button_02_hover.png') no-repeat')");
		});
		
		// Notification
		$(".notification").bind("mouseenter", function() {
			$(this).css("background", "transparent url('../img/notification_hover.png') no-repeat");
		});
		$(".notification").bind("mouseleave", function() {
			$(this).css("background", "transparent url('../img/notification.png') no-repeat')");
		});
		
		*/
		
	}
	
});


// Functions
// ----------------------

function showHide(pObjectId){
    
	if($("#" + pObjectId).css("display") == "none"){
       $("#" + pObjectId).slideDown(0);
    }else{
       $("#" + pObjectId).slideUp(0); 
    }
    
}

function preloadImages(pImages){

	// Preload Images
	if (document.images){
		
		for(i=0; i<pImages.length; i++) {
			lPreloadImages = new Image();
			lPreloadImages.src = pImages[i];
		}
		
    }

}

// ------------------------------
// Loading Bar
// ------------------------------

function showLoadingBar(pText){

	if(pText != ""){
		$("#loading_text").html(pText);
	}else{
		$("#loading_text").html(mGlobalLang["loading.default.text"]);
	}
	
	$.fn.colorbox({
		href:"#loading_panel"
	});
	
}

function closeLoadingBar(){
	$.fn.colorbox.close();	
}

function resetFavorite(){
	$("#favorite_round > option[value=0]").attr("selected", true);
}

function onChangeOnFavoriteRound(pConcatCod){
	
	$("#golf").html('<option val="0">-</option>');
	$("#round").html('<option val="0">-</option>');
	
	$("#hole_played").parent().parent().css("display","none");
	
	var lTmp = pConcatCod.split("_");
	
	mDepCodToSelect = lTmp[0];
	mGlfCodToSelect = lTmp[1];
	mTerCodToSelect = lTmp[2];
	mHoleNumToSelect = lTmp[3];
	
	$("#department > option[value='" + mDepCodToSelect + "']").attr("selected", true);
	onChangeOnDepartment(mDepCodToSelect);
	
}

function onClickOnDepartment(pDepCod){
	
	resetFavorite();
	$("#department > option[value=" + pDepCod + "]").attr("selected", true);
	onChangeOnDepartment(pDepCod);
	
}

function onChangeOnDepartment(pDepCod){

	// Convert DOM department number !
	if(pDepCod.length == 3){
		if(pDepCod == 972){
			pDepCod = "9M";
		}else{
			pDepCod = "97";
		}
	}

	var lCommonPath = $("#common_path").val();	
		
	$.ajax({
		type: "POST",
		dataType: "html",
		url: lCommonPath + "/files/ajax_option_get_golf_from_department.php", 
		data: {
			id: pDepCod
		},
		success: function(pHtml){
			if (pHtml == null) {
				alert(mGlobalLang["ajax.call.error"] + " 'department'");
			} else {
				$("#golf").html(pHtml);
				$("#round").html('<option value="" selected="selected">-</option>');

				if( $(".slope:first").html() != "-" ) {
					$(".slope").html("-");
					$(".sss").html("-");
					$(".par > span").html("-");
					$(".hcp > span").html("-");
				}
				
				$("#hole_played").parent().parent().css("display", "none");
				$("#hole_number").parent().parent().css("display", "none");
				
				if(mGlfCodToSelect != ""){
					$("#golf > option[value='" + mGlfCodToSelect + "']").attr("selected", true);
					onChangeOnGolf(mGlfCodToSelect);
					mGlfCodToSelect = "";
				}
				
			}
		},
		error:function(pXMLHttpRequest, pTextStatus, pErrorThrown){
			alert(mGlobalLang["ajax.error.catched"]);
		}
	});

}

function onChangeOnGolf(pGlfCod){

	var lCommonPath = $("#common_path").val();
	
	$.ajax({
		type: "POST",
		dataType: "html",
		url: lCommonPath + "/files/ajax_option_get_round_from_golf.php", 
		data: {
			id: pGlfCod
		},
		success: function(pHtml){
			if (pHtml == null) {
				alert(mGlobalLang["ajax.call.error"] + " 'golf'");
			} else {
				
				$("#round").html(pHtml);
				
				// -------------------------
				// TODO JAR - To Remove for 9 holes management
				// -------------------------
				/*
				var lPageEditScore = $("#last_friendly_date").length == 1;
				var lPagePrintCard = $("#create_pdf_button").length == 1;
				if(lPageEditScore || lPagePrintCard){
					$("#round > option[name=9]").remove();
				}
				if($("#round > option").length <= 1){
					alert(mGlobalLang["dev.no.nine.holes"]);
				}
				*/
				// -------------------------
			
				if( $(".slope:first").html() != "-" ) {				
					$(".slope").html("-");
					$(".sss").html("-");
					$(".par > span").html("-");
					$(".hcp > span").html("-");
				}
				
				$("#hole_played").parent().parent().css("display", "none");
				$("#hole_number").parent().parent().css("display", "none");
				
				// Chain
				if(mTerCodToSelect != ""){
					$("#round > option[value='" + mTerCodToSelect + "']").attr("selected", true);
					onChangeOnRound(mTerCodToSelect, mHoleNumToSelect);
					mTerCodToSelect = "";
					mHoleNumToSelect = "";
				}
				
			}
		},
		error:function(pXMLHttpRequest, pTextStatus, pErrorThrown){
			alert(mGlobalLang["ajax.error.catched"]);
		}
	});

}

function onChangeOnRound(pTerCod, pHoleNumber){
	
	if( pHoleNumber == 18){
		$("#hole_number").parent().parent().css("display", "");
		$("#hole_number > option[value='" + 18 + "']").attr("selected", true);
	}else{
		if(9){
			$("#hole_number").parent().parent().css("display", "none");
			$("#hole_number > option[value='" + 9 + "']").attr("selected", true);
			$("#hole_played > option[value='" + 1 + "']").attr("selected", true);
		}else{
			alert("Les cartes de score ne sont pas disponible pour les parcours ayant un nombre de trous différents de 9 et 18.");
		}
	}
	
	$("#hole_played").parent().parent().css("display", "none");

	updateAlternatingColor("golf_selection_table");
	
}

function onChangeOnHoleNumber(pHoleNumber){

	if( pHoleNumber == 9 ){
		$("#hole_played").parent().parent().css("display", "");
	}else{
		$("#hole_played").parent().parent().css("display", "none");
	}

	updateAlternatingColor("golf_selection_table");
	
}

function truncate(pWord, pLength){
	
	if(pWord != null && pWord != "undefined"){
		if( pWord.length > pLength ){
			return pWord.substring(0, pLength) + " ...";
		}
	}
	return pWord;
	
}

function xmlPostTreatment(pWord){
	return pWord.replace(/\'/, "'"); 
}

// Validate Golf Selection
// ---------------------------

function verifyGolfSelection(){

	if( $("#department").val() != 0 ){
		if( $("#golf").val() != 0 ){
			if( $("#round").val() != 0 ){
			
				return true;
			
			}else{
				alert(mGlobalLang["missing.round"]);
				$("#" + "round").focus();
			}
		}else{
			alert(mGlobalLang["missing.golf"]);
			$("#" + "golf").focus();
		}
	}else{
		alert(mGlobalLang["missing.department"]);
		$("#" + "department").focus();
	}
	
	return false;
}


function updateAlternatingColor(pElementId){

	// Alternating color on row table
	// ----------------------
	var lColor1 = "#FFF";
	var lColor2 = "#E8ECED";
	var lGoodColor = lColor1;
	
	if(pElementId == null || pElementId == "undefined"){
	
		$(".table_style_04 tr[class!=no_alt_color]").each(function(){
			if($(this).is(':visible')){
				$(this).css("background-color", lGoodColor);
				if(lGoodColor == lColor1){
					lGoodColor = lColor2;
				}else{
					lGoodColor = lColor1;
				}
			}
		});
	
	}else{
	
		$("#" + pElementId + " tr[class!=no_alt_color]").each(function(){
			if($(this).is(':visible')){
				$(this).css("background-color", lGoodColor);
				if(lGoodColor == lColor1){
					lGoodColor = lColor2;
				}else{
					lGoodColor = lColor1;
				}
			}
		});
		
	}

}

function formatLicNum(pLicNum, pLicNumLength){
	pLicNum = pLicNum.replace(/ /g,"");

	if( pLicNum.length < pLicNumLength ){
		// Add the missing "0" at the begining
		while(pLicNum.length < pLicNumLength){
			pLicNum = "0" + pLicNum;
		}
	}
	
	return pLicNum;
	
}

// pDateString has to be formated like DD/MM/YYYY
function stringToDate(pDateString){
	lDay = pDateString.substring(0,2);
	lMonth = parseInt(pDateString.substring(3,5),10) - 1;
	lYear = pDateString.substring(6,10);
	lDate = new Date();
	lDate.setDate(lDay);
	lDate.setMonth(lMonth);
	lDate.setFullYear(lYear); 
	return lDate;
}

function dateToString(pDate){
	return lDate.getDate() + "/" + lDate.getMonth() + "/" + lDate.getFullYear();
}

// 0 si pDate1 = pDate2
// 1 si pDate1 > pDate2
// -1 si pDate1 < pDate2	  
function compareDate(pDate1, pDate2){
	var lDiff = pDate1.getTime() - pDate2.getTime();
	return (lDiff == 0 ? lDiff : lDiff / Math.abs(lDiff));
	
}

function isDefined(pInputId){
	return ( $("#" + pInputId).val() != ""  && $("#" + pInputId).val() != "undefined" && $("#" + pInputId).val() );
}

function convertComaToPoint(str) {
	try {
		return str.replace(/,/g,".");
	}
	catch (e) {
		return str;
	}
}

function convertCheckBoxToBin(pCheckBox){

	if( $(pCheckBox).attr("checked") ){
		return 1;
	}else{
		return 0;
	}
	
}

function convertBinToCheckBox(pId, pValue){
	if(pValue == 1){
		$("input#" + pId).attr("checked", true);
	}else{
		$("input#" + pId).attr("checked", false);
	}
}

function isCorrectDepartmentList(pDepartmentList){
	
	if(pDepartmentList == ""){
		return true;
	}else{
	
		// Authorized : 0-9 and ,
		
		var lResult = false;
		var lReg = "";
			
		lReg = /^([0-9\,]{1,})$/;
		lResult = lReg.test(pDepartmentList);
		
		return lResult;
		
	}

}

function isCorrectLogin(pLogin){
	
	// Authorized : 10*X where X in [0-9]
	
	var lResult = false;
	var lReg = "";
		
	lReg = /^([0-9a-zA-Z]{6,20})$/;
	lResult = lReg.test(pLogin);
	
	return lResult;
	
}

function isCorrectPassword(pPassword){
	return isCorrectLogin(pPassword);
}

function leftPad(pVal, pAppend, pLength) {
   
    var lResult = '' + pVal;
    while (lResult.length < pLength) {
        lResult = pAppend + lResult;
    }
   
    return lResult;

}


function isCorrectScore(pVal, pElemId){

	// Game Type
	var lType = $("#game_type").val();
	
	var lResult = false;
	var lReg = "";

	// In strokplay => 0 forbidden
	if(lType == 2){
		if(pVal == 0){
			$("#" + pElemId).val("");
			return false;
		}
	}
	
	lReg = /^([0-9]{0,2})$/;
	lResult = lReg.test(pVal);
	
	if(!lResult){
		$("#" + pElemId).val($("#" + pElemId).val().substring(0, $("#" + pElemId).val().length-1));
	}
	
	return lResult	
		
}

function isCorrectNbPutt(pVal, pElemId){

	// Authorized :[0-9]
	
	var lResult = false;
	var lReg = "";
		
	lReg = /^([0-9]{1,2})$/;
	lResult = lReg.test(pVal);
	
	if(!lResult){
		$("#" + pElemId).val($("#" + pElemId).val().substring(0, $("#" + pElemId).val().length-1));
	}
	
	return lResult
	
}

function isCorrectDrive(pVal, pElemId){

	// Authorized :[0-9]
	
	var lResult = false;
	var lReg = "";
		
	lReg = /^([0-9]{1,3})$/;
	lResult = lReg.test(pVal);
	
	if(!lResult){
		$("#" + pElemId).val($("#" + pElemId).val().substring(0, $("#" + pElemId).val().length-1));
	}
	
	return lResult;
	
}


function isCorrectDate(pDate){

	// Authorized : XX/XX/XXXX where X in [0-9]
	
	var lResult = false;
	var lReg = "";
		
	lReg = /^([0-9]{1,2})[\/][0-9]{1,2}[\/]([0-9]{4})$/;
	lResult = lReg.test(pDate);
	
	return lResult;
	
}

function isCorrectPhone(pPhone){

	// Authorized : 10*X where X in [0-9]
	
	var lResult = false;
	var lReg = "";
		
	lReg = /^([0-9]{10})$/;
	lResult = lReg.test(pPhone);
	
	return lResult;
	
}

function isCorrectEmail(pEmail){

	// Authorized : An email that "seems" correct !
	
	var lResult = false;
	var lReg = "";
	
	lReg = /^([a-zA-Z0-9_-])+([.]?[a-zA-Z0-9_-]{1,})*@([a-zA-Z0-9-_]{2,}[.])+[a-zA-Z]{2,3}$/;
	lResult = lReg.test(pEmail);
	
	return lResult;
}

// testValidEmail();
// testIsCorrectDate();
// testIsCorrectPhone();

// Test function
function testValidEmail(){

	var lResult = "";
	var lEmailList = new Array();
	lEmailList.push("martin@tcpartners.fr");
	lEmailList.push("martin.antoine@tcpartners.fr");
	lEmailList.push("martin-antoine@tcpartners.fr");
	lEmailList.push("martin_antoine@tcpartners.fr");
	lEmailList.push("martin_antoine@tcpartners");
	lEmailList.push("martin_antoine@.fr");
	lEmailList.push("martin_antoine@cn.fr");
	lEmailList.push("martin@tcpartners.dev.fr");
	lEmailList.push("martin.antoine.durand@tcpartners.dev.test.fr");
		
	for(i=0; i<lEmailList.length; i++){
		lResult +=  lEmailList[i] + " => " + isCorrectEmail(lEmailList[i]) + "\n";
	}

	alert(lResult);
}

// Test function
function testIsCorrectDate(){

	var lResult = "";
	var lDateList = new Array();
	lDateList.push("23/12/1884");
	lDateList.push("23/12/184");
	lDateList.push("23/1/1884");
	lDateList.push("23/12/18847");
	lDateList.push("23/11884");
	lDateList.push("23/1/1884");
	lDateList.push("2/14/1884");
	lDateList.push("23/12/18847");
	lDateList.push("2/12/1884");
	lDateList.push("23_12_1884");
	lDateList.push("23.12.1884");
	lDateList.push("23.121884");
	lDateList.push("2312.1884");
	lDateList.push("23121884");
		
	for(i=0; i<lDateList.length; i++){
		lResult +=  lDateList[i] + " => " + isCorrectDate(lDateList[i]) + "\n";
	}

	alert(lResult);
}

// Test function
function testIsCorrectPhone(){

	var lResult = "";
	var lPhoneList = new Array();
	lPhoneList.push("");
	lPhoneList.push("01");
	lPhoneList.push("012");
	lPhoneList.push("0123");
	lPhoneList.push("01234");
	lPhoneList.push("012345");
	lPhoneList.push("0123456");
	lPhoneList.push("01234567");
	lPhoneList.push("012345678");
	lPhoneList.push("0123456789");
	lPhoneList.push("01234567890");
	lPhoneList.push("012a456789");
	lPhoneList.push("01-23-45-67-89");
	lPhoneList.push("01 23 45 67 89");
	lPhoneList.push("numerodetel");
	
		
	for(i=0; i<lPhoneList.length; i++){
		lResult +=  lPhoneList[i] + " => " + isCorrectPhone(lPhoneList[i]) + "\n";
	}

	alert(lResult);
}

 /* -----------------------
Cookie Management
-------------------------*/
function createCookie(pName, pValue, pDays) {
	
	var lExpires = "";
	 
	if (pDays) {
		var lDate = new Date();
		lDate.setTime(lDate.getTime()+(pDays*24*60*60*1000));
		var lExpires = "; expires=" + lDate.toGMTString();
	}
	
	document.cookie = pName + "=" + pValue + lExpires + "; path=/";
}

function readCookie(pName) {
	var lNameEQ = pName + "=";
	var lCa = document.cookie.split(';');
	for(var i=0; i<lCa.length; i++) {
		var lCookie = lCa[i];
		while (lCookie.charAt(0) == ' '){
			lCookie = lCookie.substring(1, lCookie.length);
		}
		if (lCookie.indexOf(lNameEQ) == 0){
			return lCookie.substring(lNameEQ.length, lCookie.length);
		}
	}
	return null;
}

function eraseCookie(pName) {
	createCookie(pName, "", -1);
}

function generateID(){
	var lNewDate = new Date;
	return lNewDate.getTime();
}

function hasAlreadyCookie(pName){
	
	// Check if cookie exists
	var lCookie = readCookie(pName);
	var lResult = 1;
	
	// If new user
	if(lCookie == null){
		createCookie(pName, generateID(), 365);
		lResult = 0;
	}
	return lResult;
}

