﻿//xml data
var $industrials = null;
var xmlIndustrials = null;
var firstTime = true ;
var byReq = false;
var logoPerColumn = 3;
var minColumn = 3;
var objJ = null;

$(document).ready(function() {     
    //Load industry
    loadIndustry();
});

function loadIndustry(){
     $.ajax({
		type: "GET",
		url: xml_path+"/profile.xml",
		dataType: "xml",
		success: function(xml) {
			
		    //get all industrial 		
			xmlIndustrials = xml;
		    $industrials = $("industry", xmlIndustrials).sort(sortByName);
		    
			$(".industrial").setTemplateElement("templateIndustry");
            $(".industrial").processTemplate($industrials);
            
            //get all companies
            $(".companies").setTemplateElement("templateCompany");
            $(".companies").processTemplate($industrials.find('companies > company').sort(sortByName));
            
            //get all logoes
            $("#logoDetail").setTemplateElement("templateCompanyLogo");
            $("#logoDetail").processTemplate(reorderBrands());
            
            //bind action industrial
            $(".industrial > li > a").click(showCompanies);
            
            //bind action companies
            $(".companies > li > a").click(GetCompanyProfile);
            

            //bind jcarousel
           objJ =  $(".jcarousel-skin-tango").jcarousel({
		        start: 1
		        , size:parseInt($(".brandLogo").length)
		        , scroll: 3	
            });	

            
            //get company by request
            if(company_name!=''){
                $("#logoDetail").hide();
                showCompanyByReq();
            }
		},
		error: ajaxError
	});
}


function sortByName(a,b){
    var valA = $(a).attr('name');
    var valB = $(b).attr('name');
    return valA < valB ? -1 : valA == valB ? 0 : 1; 
}

function brandClick(obj){
    $(".companies > li > a#"+$(obj).attr("ref")).click();
    return false;
}

function reorderBrands(industrialId){
    var companies = new Array();
    if (typeof(industrialId) == "undefined") {
		var objs = $("companies > company", $industrials).sort(sortByName);
	} else {
	    $(".profileDetail").empty();
		var objs = $("industry#" + industrialId + " companies > company", xmlIndustrials).sort(sortByName);
	}
	var i = 0 ;
	objs.each(function(){
	    companies[i] = this;
	    i++;
	    if($(this).find('sub-companys').length>0){
	        $(this).find('sub-companys > company').each(function(){
                companies[i] = this;
                i++;
	        });
	    }
	});
	
	
	var maxColumn = Math.ceil(companies.length / logoPerColumn);
	maxColumn = (maxColumn < minColumn) ? minColumn : maxColumn;
	
	var newBrands = new Array(maxColumn);
	for (var i = 0; i < maxColumn; i++) {
	    newBrands[i] = new Array();
	}
	var j = 0 ;
	for(var i = 0; i < companies.length; i++) {
		$(companies[i]).find('brand').attr("canclick",$(companies[i]).attr("canclick"));
		$(companies[i]).find('brand').attr("ref",$(companies[i]).attr("id"));
		if(i!=0 && i%3==0) j++; 
		newBrands[j].push($(companies[i]).find('brand'));		 
	}	
	return newBrands;
}

//get Brands
/*function reorderBrands(industrialId){
	if (typeof(industrialId) == "undefined") {
		var companys = $("company", $industrials);
	} else {
		var companys = $("industry#" + industrialId + " company", xmlIndustrials);
	}
	var maxColumn = Math.ceil(companys.length / logoPerColumn);
	maxColumn = (maxColumn < minColumn) ? minColumn : maxColumn;
	
	var newBrands = new Array(maxColumn);
	for (var i = 0; i < maxColumn; i++) newBrands[i] = new Array();
	
	for(var i = 0; i < companys.length; i++) {
		var index = i % maxColumn;
		$(companys[i]).find('brand').attr("canclick",$(companys[i]).attr("canclick"));
		$(companys[i]).find('brand').attr("ref",$(companys[i]).attr("id"));
		newBrands[index].push($(companys[i]).find('brand'));		
	}	
	return newBrands;
}*/


//function industrial by company req
function showCompanyByReq(){   

    //companies is not null
    if($industrials != null && $industrials){
        //get company by friendly url
        var company = $industrials.find("company[friendlyurl="+company_name+"]");
        
        var industrial = $(".companies > li > a#"+company.attr('id')).parents('li');
    
        //set industrial not active
        $(".industrial > li.active").removeClass("active");
        
        //set industrial is active
        $(".industrial > li > a#"+$(".companies > li > a#"+company.attr('id')).parents('li').attr('ref')).addClass('active');
        
        //get company profile
        $(".companies > li > a#"+company.attr('id')).click();
    }
}

function showCompanies(){
    
    //for industrial selected
    var industrial = $(this);
            
    //set industrial not active
    $(".industrial > li.active").removeClass("active");
    
    //set companies not active and select
    $(".companies > li").removeClass("active select");
    
    //set industrial is active
    industrial.parents("li").addClass("active");
        
    //select companies
    $(".companies > li[ref="+industrial.attr('id')+"]").addClass("active");
    
	/*$("#logoDetail").setTemplateElement("templateCompanyLogo");
	var brands = reorderBrands(industrial.attr('id'));
	$("#logoDetail").processTemplate(brands);*/

	
    var carousel = $('#logoDetail').data('jcarousel').reset();
    $("#logoDetail").setTemplateElement("templateCompanyLogo");
    $("#logoDetail").processTemplate(reorderBrands(industrial.attr('id'))).show();
    $("#logoDetail").jcarousel({
        start: 1
        , size:parseInt($(".brandLogo").length)
        , scroll: 3	
    });
    return false;
}

function GetCompanyProfile(){


    //for company is select
    var company = $(this);
    
    //$(".profileDetail").show();
    
    $("#logoDetail").hide();
        
    //Unselect companies
    $(".companies > li.select").removeClass("select");
    
    //Inactive companies,industrial
    $(".companies > li.active,.industrial > li.active").removeClass("active");
    
    
    //active industrial
   $(".industrial > li > a#"+company.parents('li').attr('ref')).parents('li').addClass('active');
    
    //select company
    company.parents('li').addClass('select');
    
    //get company profile
    $(".profileDetail").setTemplateElement("templateCompanyProfile");
  
    var company = $industrials.find('company#'+company.attr('id'));
    
    $('.pp_pic_holder,.pp_overlay,.ppt').remove();
    
    //check first time visit page
    if(firstTime){
        $(".profileDetail").processTemplate(company).fadeIn("normal",function(){
            if($(".gallery > li > a ").length > 0){
                $(".gallery a[rel^='prettyPhoto']").prettyPhoto({theme:'facebook'});
            }
        });
        firstTime = false;
    }else{
        //set fade in and fade out
        $(".profileDetail").fadeOut("fast", function(){
            $(".profileDetail").processTemplate(company).fadeIn("normal",function(){
                if($(".gallery > li > a ").length > 0){
                    $(".gallery a[rel^='prettyPhoto']").prettyPhoto({theme:'facebook'});
                }
            });
        });
    }
    return false;
}

function ajaxError(request, status, error) {  
    alert(request.statusText);
}  

