/**
*
* 	Javascript Main for KitKat Nestlé 
*
*	Copyright (c) 2007-2012 Gianluca Cirone @ JWT / RMG Connect Milano
*
**/
var reCAPTCHAPublic =	"6LfbCcgSAAAAABm73Y8KAhXXwn5pVm8qCUs90sa5";
var reCAPTCHAPrivate =	"6LfbCcgSAAAAAEu5VX0jxxJkpT2-u4bYwopqQf8M";
var KITKAT_SNAP_FOR_SECONDS = 543;
var snapsTimeLoop = 1100;
var snapsTimeout = null;

var kitkatData = null;
var userPosition = {};
var isIe7 = (navigator.userAgent.indexOf("MSIE 7.0") != -1);


var optionsLocation = { 
	enableHighAccuracy: true, 
	maximumAge: 1000, 
	timeout: 45000 
};

function errorLocation(error){
	//1 permes denied - 2 network o satellite down - 3 geolocation timeoout - 0 other error
	log("Error Location "+error.code);
	setBrowserLanguageCountry();
}

function userLocation(position){
	userPosition.ltd = position.coords.latitude;
	userPosition.lng = position.coords.longitude;
	setLocationCountry();
}

function setLocationCountry(){
	$.ajax({
	   type: "GET", dataType: "jsonp", global: true,
	   url: "http://api.geonames.org/countryCodeJSON",
	   data: "lat="+userPosition.ltd+"&lng="+userPosition.lng+"&username=flashdevit",
	   error: function(){
	   		log("Error retrive geonames user country");
	   		setBrowserLanguageCountry();
	   },
	   success: function(json){
	        var data = eval(json);
	     	userPosition.languages = data.languages;	     	
	     	userPosition.countryCode = data.countryCode;
	     	userPosition.countryName = data.countryName;
	     	if(userPosition.languages.length > 2) userPosition.languages = userPosition.languages.substr(3, 2);
	     	userPosition.languages = userPosition.languages.toLowerCase();
	     	var oneFind = false;
			for (var continent in kitkatData){
	   			for (var country in kitkatData[continent]){
	    			if(country == userPosition.languages){
	    				oneFind = true;
	    				setCountryData(kitkatData[continent][country]);
	    				break;
	    			}
		    	}
		    }
		    if(!oneFind) setBrowserLanguageCountry();
	   }
	});
}

function setBrowserLanguageCountry(){
	var language = window.navigator.userLanguage || window.navigator.language;
	//language = undefined;		
	if(language){
		if(language.length > 2) language = language.substr(3, 2);
		language = language.toLowerCase();
		var oneFind = false;	
		for (var continent in kitkatData){
   			for (var country in kitkatData[continent]){
    			
                if(country == language){
    				oneFind = true;
    				setCountryData(kitkatData[continent][country]);
    				break;
    			}
	    	}
	    }
	    if(!oneFind) setRandomCountry();
	 }else{
		setRandomCountry();	
	}	
}

function setRandomCountry(){
	var arrTmp = new Array();
	for (var continent in kitkatData){
   		for (var country in kitkatData[continent]){
   			if(kitkatData[continent][country].description != "")   			
    			arrTmp.push(kitkatData[continent][country]);
    	}
    }
	setCountryData(arrTmp[Math.round(Math.random()*arrTmp.length)]);
}

function setCountryData(record) {

    if (record.facebook != "" && record.description != "") {

        $(".box-facebook-page .title").html(record.name);
        $(".box-facebook-page .pic .info-page img").attr("src", "assets/img/flag/" + record.image);

        if (record.description.length > 110) $(".box-facebook-page .pic .info-page span").html(record.description.substring(0, 110) + "...");
        else $(".box-facebook-page .pic .info-page span").html(record.description);

        $(".box-facebook-page .pic .link-page a").attr("href", record.facebook);



        var urlLike = "http://www.facebook.com/plugins/like.php?app_id=207591285958667&amp;href=" + encodeURIComponent(record.facebook) + "&amp;send=false&amp;layout=button_count&amp;width=80&amp;show_faces=false&amp;action=like&amp;locale=en_US&amp;colorscheme=light&amp;font=arial&amp;height=21";
        var iframe = '<iframe src="' + urlLike + '" scrolling="no" frameborder="0" allowTransparency="true"></iframe>';
        $(".box-facebook-page .pic .link-page span").html(iframe);


    } else {

        setRandomCountry();
        //alert("Go getn Another Country");
    }
}



function getUserLocation(){	
	if($(".box-facebook-page").is("div")){
		$.ajax({
		   type: "GET", dataType: "json",
		   url: "assets/dat/kitkat.js",
		   error: function(){
		   		log("Error:data load kitkat");
		   },
		   success: function(json){
		      	kitkatData = eval(json);
				
				setInterval(setRandomCountry, 10000);
						      	
		        if(navigator.geolocation){
				
                	navigator.geolocation.getCurrentPosition(userLocation, errorLocation, optionsLocation);
				
                }else{
					log("getCurrentPosition not supported");
					setBrowserLanguageCountry();					
				}
		   }
		});
	}
}

function getFlikrPicture(){	
	if($("#flikr-box").is("div")){		
		$.ajax({

		   type: "GET", 
           dataType: "json",
		   url: "assets/dat/flickr.js",
		   error: function(e){
		       
               log("Error:data failure getFlikrPicture ");
               log(e);
		   
           },success: function(json){
		        
                var data = eval(json);
		     	var record = data.Flickr[Math.floor(Math.random()*data.Flickr.length)];
		     	
                $("#flikr-box .title").html(record.title);		     	
		     	$("#flikr-box .pic img").attr("src", "assets/img/"+record.url);		     	
		     	$("#flikr-box .info-data .name").html(record.name);
		     	$("#flikr-box .info-data .info").html(record.info);
		  }

		});
	}
}

function snapsCount() {	
	var startDate = new Date(new Date().getFullYear(), 0, 1);
	var diff = Math.abs(new Date().getTime() - startDate.getTime());
	//var dayDiff = Math.round(diff / (1000 * 60 *60 * 24));
	var secDiff = Math.floor(diff / 1000);
	//log("secDiff: "+secDiff);
	var kitkatSnapsThisSecond = Math.round(secDiff * KITKAT_SNAP_FOR_SECONDS);
	//log("kitkatSnapsThisSecond: "+kitkatSnapsThisSecond);
	setKitKatSnaps(kitkatSnapsThisSecond);
}

function snapsClear() {
	if(snapsTimeout) {
		clearInterval(snapsTimeout);
		snapsTimeout = null;
	}
}

function setKitKatSnaps(number){
	if($("#header-box1").is("div")){		
		var numberView = "";
		var numberSum = 100000000000;		
		var sum = numberSum + number;					
		sum = sum.toString();
		sum = sum.substr(1, sum.length-1);
		for (var i=0; i < 11; i++) {
			var currentChar = sum.substr(i, 1);
			numberView += '<img id="img-snaps-'+i+'" src="assets/img/numeri/'+currentChar+'.png" />';
		}
		$("#header-box1 .number").html(numberView);
	}
}

function getCurrentFan(){
	if($("#header-box2").is("div")){	
		$.ajax({
		   type: "GET", dataType: "jsonp", global: true,
		   url: "https://graph.facebook.com/kitkat",
		   error: function(){
		   		log("Error retrive fan");
		   },
		   success: function(json){
		        var data = eval(json);
		        setKitKatFans(data.likes);
		   }
		});
	}
}

function setKitKatFans(number){
	if($("#header-box2").is("div")){
		var numberView = "";
		var numberSum = 10000000;		
		var sum = numberSum + number;					
		sum = sum.toString();
		sum = sum.substr(1, sum.length-1);		
		for (var i=0; i < 7; i++) {
			var currentChar = sum.substr(i, 1);
			numberView += '<img id="img-snaps-'+i+'" src="assets/img/numeri/'+currentChar+'.png" />';
		}		
		$("#header-box2 .number").html(numberView);
	}
}

function focusField(){
	
	if($("#contact-form").is("table")){

	    $("#name").focus(function () {
	        $("#name_err").hide();
	    });
			
		$("#surname").focus(function(){
		    $("#surname_err").hide();
		});
		
		$("#email").focus(function(){
		    $("#email_err").hide();
		});
		
		$("#country").change(function(){
		    $("#country_err").hide();
		});
		
		$("#message").focus(function(){
		    $("#message_err").hide();
		});
		
		$("#message").keyup(function(){
			var mes = $("#message").val();
			$("#message_info").html((999-mes.length)+" characters left");
			if(mes.length > 999) $("#message").val(mes.substring(0, 999));
		});
		
		$("#reason").change(function(){
		    $("#reason_err").hide();
		});
		
		$("#privacy").click(function(){
		    $("#privacy_err").hide();
		});

	}
	
}

function anim() {

	if($("#header-box2").is("div")){	

	    /*TweenCSS.addTween($("#main").get(0), 2.6, {
		    delay:0.1,
		    ease:"ease-in-out",
		    from:{"margin-top":"0"},
		    to:{"margin-top":"80px"},
		    startStyle:true
	    });*/
	
	    TweenCSS.addTween($("#sidebar").get(0), 0.4, {
		    delay:0.2,
		    ease:"ease-in-out",
		    from:{"opacity":"0","-webkit-transform":"scale(1.5)"},
		    to:{"opacity":"1","-webkit-transform":"scale(1)"},
		    startStyle:true
	    });
	
	    TweenCSS.addTween($("#content header").get(0), 0.4, {
		    delay:0.4,
		    ease:"ease-in-out",
		    from:{"opacity":"0","-webkit-transform":"scale(1.5)"},
		    to:{"opacity":"1","-webkit-transform":"scale(1)"},
		    startStyle:true
	    });
	
	    TweenCSS.addTween($("#content section").get(0), 0.4, {
		    delay:0.6,
		    ease:"ease-in-out",
		    from:{"opacity":"0","-webkit-transform":"scale(1.5)"},
		    to:{"opacity":"1","-webkit-transform":"scale(1)"},
		    startStyle:true
	    });
	
	    TweenCSS.addTween($("#content footer").get(0), 0.4, {
		    delay:0.8,
		    ease:"ease-in-out",
		    from:{"opacity":"0","-webkit-transform":"scale(1.5)"},
		    to:{"opacity":"1","-webkit-transform":"scale(1)"},
		    startStyle:true
	    });
	
	    TweenCSS.addTween($("#footer-menu").get(0), 0.4, {
		    delay:1,
		    ease:"ease-in-out",
		    from:{"opacity":"0","-webkit-transform":"scale(1.5)"},
		    to:{"opacity":"1","-webkit-transform":"scale(1)"},
		    startStyle:true
		});

    }

}

function init(){
	scrollTo(0, 0);
	
	snapsCount();
	snapsTimeout = setInterval(snapsCount, snapsTimeLoop);
	
	setKitKatFans(0);
	getCurrentFan();
	
	getFlikrPicture();
	getUserLocation();


   
	if (isIe7 === false) {

        if ($("#swf_placeholder").length)
        {
        	setupMapPlaceholder();
        }
	    else if ($("#flash_map").length)
	        setupGlobeMap();
    }
    
	
	
	focusField();
	anim();
	
}

function setupGlobeMap()
{
	
	var flashvars = {
		};
	var params = {
		menu: "false",
		scale: "noScale",
		allowFullscreen: "false",
		allowScriptAccess: "always"/*,
		wmode: "transparent"*/
	};
	var attributes = {
		id:"globe_map_swf"
	};
	
	swfobject.embedSWF("assets/swf/globemap_preloader.swf", "flash_map", "733px", "502px", "10.0.0", "assets/swf/expressInstall.swf", flashvars, params, attributes);
	swfmacmousewheel.registerObject(attributes.id);
	
}

function setupMapPlaceholder()
{
	log("embed swf");
	var flashvars = {
		};
	var params = {
		menu: "false",
		scale: "noScale",
		allowFullscreen: "false",
		allowScriptAccess: "always",
		wmode: "transparent"
	};
	var attributes = {
		id:"placeholder"
	};
	
	swfobject.embedSWF("assets/swf/placeholder_preloader.swf", "swf_placeholder", "487px", "218px", "10.0.0", "assets/swf/expressInstall.swf", flashvars, params, attributes);
}

//********* call init function ********
$(document).ready(init);

//********* log ********
function log(obj){ try{ if(console) console.log(obj); }catch(ex){ } }






















/***** CACCA (grazie a conni) ******/
function validateEmail(elementValue) {
    var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
    return emailPattern.test(elementValue);
}

function contact() {
    var control = true;
    $("#main_error").css("opacity", "0");

    //log(Recaptcha.get_response());
    //log(Recaptcha.get_challenge());

    if ($("#name").val() == "") {
        control = false;
        $("#name_err").css("opacity", "1");
    } else {
        $("#name_err").css("opacity", "0");
    }

    if ($("#surname").val() == "") {
        control = false;
        $("#surname_err").css("opacity", "1");
    } else {
        $("#surname_err").css("opacity", "0");
    }

    if ($("#email").val() == "" || !validateEmail($("#email").val())) {
        control = false;
        $("#email_err").css("opacity", "1");
    } else {
        $("#email_err").css("opacity", "0");
    }

    if ($("#country").val() == 0) {
        control = false;
        $("#country_err").css("opacity", "1");
    } else {
        $("#country_err").css("opacity", "0");
    }

    if ($("#message").val() == "") {
        control = false;
        $("#message_err").css("opacity", "1");
    } else {
        $("#message_err").css("opacity", "0");
    }

    if ($("#reason").val() == 0) {
        control = false;
        $("#reason_err").css("opacity", "1");
    } else {
        $("#reason_err").css("opacity", "0");
    }

    if (!$("#privacy").is(":checked")) {
        control = false;
        $("#privacy_error").css("opacity", "1");
    } else {
        $("#privacy_error").css("opacity", "0");
    }

    if (control) {

        var dataPost = {};
        dataPost.name = $("#name").val();
        dataPost.surname = $("#surname").val();
        dataPost.email = $("#email").val();
        dataPost.country = $("#country").val();
        dataPost.country_name = $("#country option:selected").text();
        dataPost.message = $("#message").val();
        dataPost.reason = $("#reason").val();
        dataPost.reason_name = $("#reason option:selected").text();
        $("#contact-form").css("opacity", "0.5");

        //__doPostBack("checkCaptcha", dataPost);

        $.ajax({
            type: "POST", dataType: "json", global: false,
            data: dataPost,
            url: "sendmail.aspx",
            error: function () {
                log("Error sendmail");
                $("#contact-form").css("opacity", "1");
                $("#main_error").css("opacity", "1");
            },
            success: function (data) {
                log("data success" + data);
                var ret = eval(data);
                log(ret);
                if (ret.message) {
                    location.href = "contact_feedback.html";
                } else {
                    $("#contact-form").css("opacity", "1");
                    $("#main_error").css("opacity", "1");
                }
            }
        });

    }

}
