function startCMSLoginForm() {

	var baseDir = getSelfPath("CMSLoginFile");

	//Càrrega dinàmica de llibrerires i estils
	var filesToLoad = [
		{file:baseDir+"login.css",          test:cssloginLoaded},
		{file:baseDir+"jquery-1.4.1.min.js",test:jqueryLoaded},
		{file:baseDir+"jquery.tools.min.js",test:jtoolsLoaded}
	];
	load_js_dinamically(filesToLoad,showCMSLoginForm);
}

var firsrTime_CMSLoginForm = true;
var facebox;
function showCMSLoginForm() {

	if (firsrTime_CMSLoginForm) {

		$("#facebox .send").click(sendCMSLoginForm);
		$("#facebox form").bind("keydown", function(e) {
			if (e.keyCode == 13) {
				sendCMSLoginForm();
				return false; //prevent default behaviour
			}
		});
		facebox = $("#facebox").overlay({ 
		    top: "center", 
		    expose: { 
		        color: '#fff', 
		        loadSpeed: 200,
		        opacity: 0.5 
		    }, 
		    closeOnClick: false, 
		    api: true 
		});
		firsrTime_CMSLoginForm = false;
	}
	facebox.load();
	$('#facebox form :input').val("");
	$("#user").focus();
}

function sendCMSLoginForm() {
	$("#loginloader").show();
	$("#loginmsg").remove();
	$.ajax({
		type: "POST",
		url: "login.php",
		data: $("#facebox form").serialize(),
		dataType: "json",
		error: function(){ alert("error on login request"); }, 
		success: function(data){
			if (data.success) {
				var ls = location.search.replace("?admin", "");
				location.href=location.protocol+'//'+location.host+location.pathname+ls;
			} else {
				$("#logindesc").append('<p id="loginmsg" style="color:red">usuari incorrecte</p>');
				$("#loginloader").hide();
			}
		}
	});
}
function getSelfPath(scriptTagId) {
	var myScript = document.getElementById(scriptTagId);
	var myScriptSrc = myScript.getAttribute('src');
	return myScriptSrc.match( /.*\// );
}

jqueryLoaded = function() {
	return (typeof $ != "undefined");
}

jtoolsLoaded = function() {
	return (typeof $.tools != "undefined");
}

cssloginLoaded = function() {
	return verifyStyle('#facebox');
}
/*
 * Load jquery dinamically
 * Based from: http://www.squidoo.com/load-jQuery-dynamically
 */

load_js_dinamically = function(filesToLoad,callbackFunction,start) {

	var start = (start)? start : 0;

	if (start < filesToLoad.length) {
		var filename = filesToLoad[start].file;
		var testFunction = filesToLoad[start].test;
		if (!testFunction()) {
			var type = filename.substr(filename.length - 3);
			if (type.toLowerCase() != 'css') {
				load_js_dinamically.getScript(filename);
			}
			else {
				load_js_dinamically.getCSS(filename);
			}
			load_js_dinamically.tryReady(0, filename, testFunction, callbackFunction, filesToLoad, start + 1);
		} else {
			load_js_dinamically(filesToLoad,callbackFunction,start + 1);
		}
	} else {
		callbackFunction();
	}

}
load_js_dinamically.getScript = function(filename) {
    var fileref = document.createElement('script')
    fileref.setAttribute("type","text/javascript")
    fileref.setAttribute("src", filename)
    if (typeof fileref!="undefined")
        document.getElementsByTagName("head")[0].appendChild(fileref)
}
load_js_dinamically.getCSS = function(filename) {
    var fileref = document.createElement('link')
    fileref.setAttribute("rel","stylesheet")
	fileref.setAttribute("type","text/css")
    fileref.setAttribute("href", filename)
    if (typeof fileref!="undefined")
        document.getElementsByTagName("head")[0].appendChild(fileref)
}
load_js_dinamically.tryReady = function(time_elapsed,filename,testFunction,callbackFunction,filesToLoad,start) {
    /* Continually polls for file */
    if (!testFunction()) {
        if (time_elapsed <= 5000) {
			setTimeout(function(){load_js_dinamically.tryReady((time_elapsed + 200),filename,testFunction,callbackFunction,filesToLoad,start)}, 200);
        } else {
            alert("Timed out while loading "+filename);
        }
    } else load_js_dinamically(filesToLoad,callbackFunction,start);
}

/*
 * verifyStyle
 */
function verifyStyle(selector) {
    var rules;
    var haveRule = false;

    if (typeof document.styleSheets != "undefined") {   //is this supported
        var cssSheets = document.styleSheets;

        outerloop:
        for (var i = 0; i < cssSheets.length; i++) {

             //using IE or FireFox/Standards Compliant
			 try {
			 	rules = (typeof cssSheets[i].cssRules != "undefined") ? cssSheets[i].cssRules : cssSheets[i].rules;
			 	
			 	for (var j = 0; j < rules.length; j++) {
			 		if (rules[j].selectorText == selector) {
			 			haveRule = true;
			 			break outerloop;
			 		}
			 	}
			 } 
			 catch (er) {
			 }
        }
    }

    return haveRule;
}
/*
 * Obté un paràmetre de la url
 */
function login_param()
{
  var name = 'admin' 
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  //var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regexS = "[\\?&]"+name+"$";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null )
    return false;
  else
    return true;
}
