// -------------------------------------------------------------------------------------------
// -------------------------------------------------------------------------------------------
var url_ = "";
var partner_ = "";
var subpartner_ = "";
var niche_ = "";
var language_ = "";
var trace_ = "";

var CONST_CLIENTREGISTER = "client";
var CONST_PERFORMERPREREGISTER = "performerPre"
// -------------------------------------------------------------------------------------------
// -------------------------------------------------------------------------------------------

// -------------------------------------------------------------------------------------------
// -------------------------------------------------------------------------------------------
function define(url, partner, subpartner, niche, language, trace)
{
	url_ = url + "/livewebcams/Promo/external.aspx";
	partner_ = partner;
	subpartner_ = subpartner;
	niche_ = niche;
	language_ = language;
	trace_ = trace;
}

function addText(type, text)
{
	var newDiv = $("<div class='" + type + "Error'></div>").append(text);
	$("#" + type + "Errors").append(newDiv);
	$("#" + type + "Errors").show();
}

function resetText(type)
{
	$("#" + type + "Errors").html("");
	$("#" + type + "Errors").hide();
}

function genFormField( start, end, id, def, pad )
{
	for( i=start; i<=end; i++ )
	{
		var field = document.createElement( 'OPTION' );
		field.innerHTML = padLeft(i + "", '0', pad);
		field.value = i;
		
		if( def == i )
		{
			field.selected = true;
		}
		
		document.getElementById(id).appendChild( field );
	}
}
function padLeft(theString, theChar, nbChars)
{
	var paddedString = theString;
	var nbToAdd = nbChars - theString.length;
	
	if (nbToAdd > 0)
	{
		for (var i=0; i<nbToAdd; i++)
		{
			paddedString = theChar + paddedString;
		}
	}
	
	return paddedString;
}

function genField(id, arr)
{
	var output = []
	$.each(arr, function(huh, pair)
	{
		var selected = huh == 0 ? " selected" : "";
		output.push('<option value="'+ pair[0] +'"' + selected + '>'+ pair[1] +'</option>');
	});
	
	$("#" + id).html(output.join(''));
}

function genCountries(id)
{
	var countries = 
	[
		["FR", "France"], ["CA", "Canada"], ["US", "United States"],
		["AF", "Afghanistan"], ["AL", "Albania"], ["DZ", "Algerie"], ["AS", "American Samoa"], 
		["AD", "Andorra"], ["AO", "Angola"], ["AI", "Anguilla"], ["AQ", "Antarctica"], ["AG", "Antigua And Barbuda"], 
		["AR", "Argentina"], ["AM", "Armenia"], ["AW", "Aruba"], ["AU", "Australia"], ["AT", "Austria"], ["AZ", "Azerbaijan"], 
		["BS", "Bahamas"], ["BH", "Bahrain"], ["BD", "Bangladesh"], ["BB", "Barbados"], ["BY", "Belarus"], ["BE", "Belgique"], 
		["BZ", "Belize"], ["BJ", "Benin"], ["BM", "Bermuda"], ["BT", "Bhutan"], ["BO", "Bolivia"], ["BA", "Bosnia And Herzegovina"], 
		["BW", "Botswana"], ["BV", "Bouvet Island"], ["BR", "Brazil"], ["IO", "British Indian Ocean Territory"], ["BN", "Brunei Darussalam"], 
		["BG", "Bulgaria"], ["BF", "Burkina Faso"], ["BI", "Burundi"], ["KH", "Cambodia"], ["CM", "Cameroon"],  
		["CV", "Cape Verde"], ["KY", "Cayman Islands"], ["CF", "Central African Republic"], ["TD", "Chad"], ["CL", "Chile"], ["CN", "China"], 
		["CX", "Christmas Island"], ["CC", "Cocos (keeling] Islands"], ["CO", "Colombia"], ["KM", "Comoros"], ["CG", "Congo"], 
		["CD", "Congo, The Democratic Republic Of The"], ["CK", "Cook Islands"], ["CR", "Costa Rica"], ["CI", "Cote D'ivoire"], ["HR", "Croatia"], 
		["CU", "Cuba"], ["CY", "Cyprus"], ["CZ", "Czech Republic"], ["DK", "Denmark"], ["DJ", "Djibouti"], ["DM", "Dominica"], 
		["DO", "Dominican Republic"], ["TL", "East Timor"], ["EC", "Ecuador"], ["EG", "Egypt"], ["SV", "El Salvador"], 
		["GQ", "Equatorial Guinea"], ["ER", "Eritrea"], ["EE", "Estonia"], ["ET", "Ethiopia"], ["FK", "Falkland Islands (malvinas]"], 
		["FO", "Faroe Islands"], ["FJ", "Fiji"], ["FI", "Finland"], ["GF", "French Guiana"], ["PF", "French Polynesia"], 
		["TF", "French Southern Territories"], ["GA", "Gabon"], ["GM", "Gambia"], ["GE", "Georgia"], ["DE", "Germany"], ["GH", "Ghana"], 
		["GI", "Gibraltar"], ["GR", "Greece"], ["GL", "Greenland"], ["GD", "Grenada"], ["GP", "Guadeloupe"], ["GU", "Guam"], ["GT", "Guatemala"], 
		["GN", "Guinea"], ["GW", "Guinea-bissau"], ["GY", "Guyana"], ["HT", "Haiti"], ["HM", "Heard Island And Mcdonald Islands"], 
		["VA", "Holy See (vatican City State]"], ["HN", "Honduras"], ["HK", "Hong Kong"], ["HU", "Hungary"], ["IS", "Iceland"], ["IN", "India"], 
		["ID", "Indonesia"], ["IR", "Iran, Islamic Republic Of"], ["IQ", "Iraq"], ["IE", "Ireland"], ["IL", "Israel"], ["IT", "Italy"], 
		["JM", "Jamaica"], ["JP", "Japan"], ["JO", "Jordan"], ["KZ", "Kazakhstan"], ["KE", "Kenya"], ["KI", "Kiribati"], 
		["KP", "Korea, Democratic People's Republic Of"], ["KR", "Korea, Republic Of"], ["KW", "Kuwait"], ["KG", "Kyrgyzstan"], 
		["LA", "Lao People's Democratic Republic"], ["LV", "Latvia"], ["LB", "Lebanon"], ["LS", "Lesotho"], ["LR", "Liberia"], 
		["LY", "Libyan Arab Jamahiriya"], ["LI", "Liechtenstein"], ["LT", "Lithuania"], ["LU", "Luxembourg"], ["MO", "Macao"], 
		["MK", "Macedonia, The Former Yugoslav Republic Of"], ["MG", "Madagascar"], ["MW", "Malawi"], ["MY", "Malaysia"], ["MV", "Maldives"], 
		["ML", "Mali"], ["MT", "Malta"], ["MH", "Marshall Islands"], ["MQ", "Martinique"], ["MR", "Mauritania"], ["MU", "Mauritius"], 
		["YT", "Mayotte"], ["MX", "Mexico"], ["FM", "Micronesia, Federated States Of"], ["MD", "Moldova, Republic Of"], ["MC", "Monaco"], 
		["MN", "Mongolia"], ["MS", "Montserrat"], ["MA", "Morocco"], ["MZ", "Mozambique"], ["MM", "Myanmar"], ["NA", "Namibia"], ["NR", "Nauru"], 
		["NP", "Nepal"], ["NL", "Netherlands"], ["AN", "Netherlands Antilles"], ["NC", "New Caledonia"], ["NZ", "New Zealand"], 
		["NI", "Nicaragua"], ["NE", "Niger"], ["NG", "Nigeria"], ["NU", "Niue"], ["NF", "Norfolk Island"], ["MP", "Northern Mariana Islands"], 
		["NO", "Norway"], ["OM", "Oman"], ["PK", "Pakistan"], ["PW", "Palau"], ["PS", "Palestinian Territory, Occupied"], ["PA", "Panama"], 
		["PG", "Papua New Guinea"], ["PY", "Paraguay"], ["PE", "Peru"], ["PH", "Philippines"], ["PN", "Pitcairn"], ["PL", "Poland"], 
		["PT", "Portugal"], ["PR", "Puerto Rico"], ["QA", "Qatar"], ["RE", "Reunion"], ["RO", "Romania"], ["RU", "Russian Federation"], 
		["RW", "Rwanda"], ["SH", "Saint Helena"], ["KN", "Saint Kitts And Nevis"], ["LC", "Saint Lucia"], ["PM", "Saint Pierre And Miquelon"], 
		["VC", "Saint Vincent And The Grenadines"], ["WS", "Samoa"], ["SM", "San Marino"], ["ST", "Sao Tome And Principe"], 
		["SA", "Saudi Arabia"], ["SN", "Senegal"], ["SC", "Seychelles"], ["SL", "Sierra Leone"], ["SG", "Singapore"], ["SK", "Slovakia"], 
		["SI", "Slovenia"], ["SB", "Solomon Islands"], ["SO", "Somalia"], ["ZA", "South Africa"], 
		["GS", "South Georgia And The South Sandwich Islands"], ["ES", "Spain"], ["LK", "Sri Lanka"], ["SD", "Sudan"], ["SR", "Suriname"], 
		["SJ", "Svalbard And Jan Mayen"], ["SZ", "Swaziland"], ["SE", "Sweden"], ["CH", "Switzerland"], ["SY", "Syrian Arab Republic"], 
		["TW", "Taiwan, Province Of China"], ["TJ", "Tajikistan"], ["TZ", "Tanzania, United Republic Of"], ["TH", "Thailand"], 
		["TG", "Togo"], ["TK", "Tokelau"], ["TO", "Tonga"], ["TT", "Trinidad And Tobago"], ["TN", "Tunisia"], ["TR", "Turkey"], 
		["TM", "Turkmenistan"], ["TC", "Turks And Caicos Islands"], ["TV", "Tuvalu"], ["UG", "Uganda"], ["UA", "Ukraine"], 
		["AE", "United Arab Emirates"], ["GB", "United Kingdom"], ["UM", "United States Minor Outlying Islands"], ["UY", "Uruguay"], 
		["UZ", "Uzbekistan"], ["VU", "Vanuatu"], ["VE", "Venezuela"], ["VN", "Viet Nam"], ["VG", "Virgin Islands, British"], 
		["VI", "Virgin Islands, U.s."], ["WF", "Wallis And Futuna"], ["EH", "Western Sahara"], ["YE", "Yemen"], ["YU", "Yugoslavia"], 
		["ZM", "Zambia"], ["ZW", "Zimbabwe"]
	];
	
	genField(id, countries);
}

function genLanguages(id)
{
	var languages =
	[
		["FR", "Français"],
		["EN", "English"],
		["ES", "Español"]
	];
	
	genField(id, languages);
}

function genGenders(id)
{
	var genders =
	[
		["1", "F"],
		["2", "M"],
		["3", "T"]
	];
	
	genField(id, genders);
}

function genTypeMessengers(id)
{
	var types =
	[
		["MSN", "MSN Live Messenger"],
		["SKYPE", "Skype"],
		["YAHOO", "Yahoo! Messenger"]
	];
	
	genField(id, types);
}
// -------------------------------------------------------------------------------------------
// -------------------------------------------------------------------------------------------

// -------------------------------------------------------------------------------------------
// -------------------------------------------------------------------------------------------
function defineClientRegister()
{
	$("#" + CONST_CLIENTREGISTER + "Errors").hide();
	$("#" + CONST_CLIENTREGISTER + "BillingTags").hide();
	
	var curDate = new Date();
	genFormField(curDate.getUTCFullYear()-110, curDate.getUTCFullYear(), CONST_CLIENTREGISTER + "Year", curDate.getUTCFullYear()-18, 4);
	genFormField(1, 12, CONST_CLIENTREGISTER + "Month", curDate.getUTCMonth()+1, 2);
	genFormField(1, 31, CONST_CLIENTREGISTER + "Day", curDate.getUTCDate(), 2);
}

function clientRegister()
{
	resetText(CONST_CLIENTREGISTER);
	
	$("#" + CONST_CLIENTREGISTER + "Register").attr("disabled", "disabled");
	
	var userName 	= $("#" + CONST_CLIENTREGISTER + "Username").val();
	//var passWord    = $("#" + CONST_CLIENTREGISTER + "Password").val();
	//
    if($("#" + CONST_CLIENTREGISTER + "Password").val() != "")
    {
        passWord 	= $("#" + CONST_CLIENTREGISTER + "Password").val();
    }
    else
    {
        passWord 	= ComposerMotPasse(7,false,true,false,false,false,true,false,false); 
    }
	
	var email 		= $("#" + CONST_CLIENTREGISTER + "Email").val();
	var birthDate 	= $("#" + CONST_CLIENTREGISTER + "Year").val() + "-" + padLeft($("#" + CONST_CLIENTREGISTER + "Month").val(), '0', 2) + "-" + padLeft($("#" + CONST_CLIENTREGISTER + "Day").val(), '0', 2);
	var optIn 		= $("#" + CONST_CLIENTREGISTER + "OptIn").is(":checked");
	
	var params = "?type=1";
	params += "&id=" + escape(niche_);
	params += "&la=" + escape(language_);
	params += "&partenaire=" + escape(partner_);
	params += "&subpartenaire=" + escape(subpartner_);
	params += "&trace=" + escape(trace_);
	params += "&callback=?";
	
	params += "&un=" + escape(userName);
	params += "&pw=" + escape(passWord);
	params += "&em=" + escape(email);
	params += "&bd=" + escape(birthDate);
	params += "&oi=" + escape(optIn);
	
	$.getJSON(url_+params, clientRegister_getJSONHandler);
}

function clientRegister_getJSONHandler(data)
{
	var isError = data.Type == "True" ? true : false;
	var bTags = data.Tag;

	for (var i=0; i<data.Errors.length; i++)
	{
		addText(CONST_CLIENTREGISTER, data.Errors[i].Message);
	}
	
	if (!isError)
	{
		$("#" + CONST_CLIENTREGISTER + "BillingTags").html(bTags);
		$("#" + CONST_CLIENTREGISTER + "Form").hide();
	}
	$("#"+ CONST_CLIENTREGISTER + "Register").removeAttr("disabled");
}
// -------------------------------------------------------------------------------------------
// -------------------------------------------------------------------------------------------

// -------------------------------------------------------------------------------------------
// -------------------------------------------------------------------------------------------
function definePerformerPreRegister()
{
	$("#" + CONST_PERFORMERPREREGISTER + "Errors").hide();
	$("#" + CONST_PERFORMERPREREGISTER + "BillingTags").hide();
	
	var curDate = new Date();
	genFormField(curDate.getUTCFullYear()-110, curDate.getUTCFullYear(), CONST_PERFORMERPREREGISTER + "Year", curDate.getUTCFullYear()-18, 4);
	genFormField(1, 12, CONST_PERFORMERPREREGISTER + "Month", curDate.getUTCMonth()+1, 2);
	genFormField(1, 31, CONST_PERFORMERPREREGISTER + "Day", curDate.getUTCDate(), 2);
	
	genCountries(CONST_PERFORMERPREREGISTER + "Country");
	genLanguages(CONST_PERFORMERPREREGISTER + "Language");
	genGenders(CONST_PERFORMERPREREGISTER + "Genre");
	genTypeMessengers(CONST_PERFORMERPREREGISTER + "TypeMessenger");
}

function performerPreRegister()
{
	resetText(CONST_PERFORMERPREREGISTER);
	
	$("#" + CONST_PERFORMERPREREGISTER + "Register").attr("disabled", "disabled");
	
	var username 		= $("#" + CONST_PERFORMERPREREGISTER + "Pseudo").val();
	var lastname 		= $("#" + CONST_PERFORMERPREREGISTER + "LastName").val();
	var firstname 		= $("#" + CONST_PERFORMERPREREGISTER + "FirstName").val();
	var telephone 		= $("#" + CONST_PERFORMERPREREGISTER + "Telephone").val();
	var email 			= $("#" + CONST_PERFORMERPREREGISTER + "Email").val();
	
	var birthdate 		= $("#" + CONST_PERFORMERPREREGISTER + "Year").val() + "-" + padLeft($("#" + CONST_PERFORMERPREREGISTER + "Month").val(), '0', 2) + "-" + padLeft($("#" + CONST_PERFORMERPREREGISTER + "Day").val(), '0', 2);
	var messenger 		= $("#" + CONST_PERFORMERPREREGISTER + "Messenger").val();
	var typemessenger 	= $("#" + CONST_PERFORMERPREREGISTER + "TypeMessenger").val();
	var genre 			= $("#" + CONST_PERFORMERPREREGISTER + "Genre").val();
	var language 		= $("#" + CONST_PERFORMERPREREGISTER + "Language").val();
	var country 		= $("#" + CONST_PERFORMERPREREGISTER + "Country").val();
	
	var params = "?type=2";
	params += "&id=" + escape(niche_);
	params += "&la=" + escape(language_);
	params += "&partenaire=" + escape(partner_);
	params += "&subpartenaire=" + escape(subpartner_);
	params += "&trace=" + escape(trace_);
	params += "&partref=1";
	params += "&callback=?";
	
	params += "&un=" + escape(username);
	params += "&ge=" + escape(genre);
	params += "&ln=" + escape(lastname);
	params += "&fn=" + escape(firstname);
	params += "&co=" + escape(country);
	params += "&te=" + escape(telephone);
	params += "&em=" + escape(email);
	params += "&ml=" + escape(language);
	params += "&bd=" + escape(birthdate);
	params += "&me=" + escape(messenger);
	params += "&tm=" + escape(typemessenger);
	
	$.getJSON(url_+params, performerPreRegister_getJSONHandler);
}

function performerPreRegister_getJSONHandler(data)
{
	var isError = data.Type == "True" ? true : false;

	for (var i=0; i<data.Errors.length; i++)
	{
		addText(CONST_PERFORMERPREREGISTER, data.Errors[i].Message);
	}
	
	if (!isError)
	{
		$("#" + CONST_PERFORMERPREREGISTER + "Form").hide();
	}
	$("#" + CONST_PERFORMERPREREGISTER + "Register").removeAttr("disabled");
}





// -------------------------------------------------------------------------------------------
// -------------------------------------------------------------------------------------------
// Mot de passe 
// -------------------------------------------------------------------------------------------
function DonneNombreHasard(Minimum, Maximum) 
{
    return (Math.floor(Math.random() * (Maximum - Minimum)) + Minimum);
}

function DonneCaractereHasard(Nombres, Minuscules, Majuscules, Autres) 
{
    var LesChiffres 			= "0123456789";
    var LesMinuscules 		= "abcdefghijklmnopqrstuvwxyz";
    var LesMajuscules 		= "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    var LesAutres 				= "`~!@#$%^&*()-_=+[{]}\\|;:'\",<.>/? ";
    var ChaineCaracteres 	= ""
	
    if (Nombres == true)	  	ChaineCaracteres += LesChiffres;
    if (Minuscules == true) 	ChaineCaracteres += LesMinuscules;
    if (Majuscules == true) 	ChaineCaracteres += LesMajuscules;
    if (Autres == true)     	ChaineCaracteres += LesAutres;
	
    return ChaineCaracteres.charAt(DonneNombreHasard(0, ChaineCaracteres.length));
}

function ComposerMotPasse(Longueur,NombreEnPremier,MinusculeEnPremier,MajusculeEnPremier,AutreEnPremier,NombreEnsuite,MinusculeEnsuite,MajusculeEnsuite, AutreEnsuite) 
{
    var Resultat = "";
    if (Longueur > 0) Resultat = Resultat + DonneCaractereHasard(NombreEnPremier,MinusculeEnPremier,MajusculeEnPremier,AutreEnPremier);
    for (var i = 1; i < Longueur; ++i) 
    {
        Resultat = Resultat + DonneCaractereHasard(NombreEnsuite,MinusculeEnsuite,MajusculeEnsuite,AutreEnsuite);
    }
    return Resultat;
}


// -------------------------------------------------------------------------------------------
// -------------------------------------------------------------------------------------------
