var G = {};
G.isLastPage = false;
G.isBusy = false;
G.webDir = "/";

var howOften = 500;
var bufferHeight = 100;
var AreaAllPage=1;
var AreaCurrentPage=1;

var area = {};
area.lastCode = ClientArea;
area.getArea = function(root,__callback, __errorcallback)
{
	jQuery.ajax(
       {
         type: "POST",
         url: G.webDir + "ajax/area.html",
         data: { "root" : root},
         dataType: "json",
         success: function (result) {if (__callback){__callback(result);} },
         error: function(xhr,errMsg,ex) {if (__errorcallback) __errorcallback(errMsg); }
       });
};
area.getAreaNavi = function(code,_callback,_errCallBack)
{jQuery.ajax({
        type:"POST",
        url:G.webDir + "ajax/areaNavi.html",
        data:{"root":code},
        dataType:"html",
        success:function(result){if(_callback) _callback(result);},
        error:function(xhr,msg,ex){if(_errCallBack) _errCallBack(msg);}
    });
};
var com = {};
com.page = 0;
com.pageAuto=0;
com.kWord="";
com.getData = function(area,catalog,page,__callback, __errorcallback)
{
	jQuery.ajax(
       {
         type: "GET",
         url: G.webDir + "ajax/companySynopsis.html",
         data: { "area" : area,"catalog":catalog,"page":page,"kword":unescape(com.kWord)},
         dataType: "json",
         success: function (result) { if (__callback) __callback(result); },
         error: function(xhr,errMsg,ex) {if (__errorcallback) __errorcallback(errMsg); }
       });
};

com.getSponsor = function(area,catalog,type,__callback, __errorcallback)
{ jQuery.ajax(
       {
         type: "POST",
         url: G.webDir + "ajax/SponsorCompanies.html",
         data: { "area" : area,"catalog":catalog,"type":type},
         dataType: "json",
         success: function (result) { if (__callback) __callback(result); },
         error: function(xhr,errMsg,ex) { if (__errorcallback) __errorcallback(errMsg); }
       });
};

com.getCount = function (code,__callback,__error)
{jQuery.ajax({
    type:"GET",
    url:G.webDir + "ajax/ItemCountByCatalog.html",
    data:{},
    success:function (result){ if (__callback) __callback(result); },
    error: function(xhr,errMsg,ex) { if (__error) __error(errMsg); }
});
};


var catalog = {};
catalog.lastNodeId = "0";
catalog.getData = function(root,__callback, __errorcallback)
{ jQuery.ajax(
       {
         type: "GET",
         url: G.webDir + "ajax/catalog.html",
         data: { "root" : root},
         dataType: "json",
         success: function (result) {if (__callback) __callback(result); },
         error: function(xhr,errMsg,ex) {if (__errorcallback) __errorcallback(errMsg); }
       });
};

function getPageEnd(){return document.getElementById('laststop').offsetTop;}
function getWinHeight(){return $(window).height();}

function isItEnd(scrollPos){
    var scrollPos;
    if (typeof window.pageYOffset != 'undefined') scrollPos = window.pageYOffset;
    else if (typeof document.compatMode != 'undefined' && document.compatMode != 'BackCompat') scrollPos = document.documentElement.scrollTop;
    else if (typeof document.body != 'undefined') scrollPos = document.body.scrollTop;

    return (scrollPos + getWinHeight() + bufferHeight) > getPageEnd();
};

function checkScrollPos(){
    if(G.isLastPage || G.isBusy) return;
    if(isItEnd()) changeCompanyList(catalog.lastNodeId);
};

function AddArea(){
    var href = $(this).attr('code');
    var title = $(this).text();
    changeNavi(href);
    return false;
};

function changeNavi(code,isgetcompany){
    G.isLastPage = false;
	if(isUndefined(isgetcompany)) isgetcompany = true;
    area.getArea(code,function(value){
        if(value == null || typeof(value) == 'undefined' || value.length == 0){
            $('.area[@code="'+ code +'"]').addClass('selectedArea');
            $('#x_flag').css('left',$('.selectedArea').offset().left-240);
            $('#x_flag').show();
            $(".area").hover(ListArea,function(){});
            $(".area").click(AddArea);
            return;
        };
		$('.selectedArea').removeClass('selectedArea');
		var html = G.subareaTempl.process({"data":value});
        $('#subareas').html(html);
        $(".area").hover(ListArea,function(){});
        $(".area").click(AddArea);
		AreaAllPage=Math.ceil(value.length/6);
		AreaAllPage= AreaAllPage==0?1:AreaAllPage;
		AreaCurrentPage=1;
		ShowArea(1);
		$('.areapre-img').addClass("hide");
		if(AreaAllPage<=1) $('.areanext-img').addClass("hide");
        area.getAreaNavi(code,function(value){
            area.lastCode = code;
            $('#x086').html(value);
			if(isgetcompany)
			{
                 com.page = 0;
                 $('.main').empty();
                 var mainHeight = $('.main').height();
                 var yHeight = $('.y_ruler').height();
                 $('.y_ruler').height(mainHeight > yHeight ? mainHeight : yHeight);
                 changeCompanyList(catalog.lastNodeId);
			};
            $('#x_flag').css('left',$('.selectedArea').offset().left-240);
            $('#x_flag').show();
            $(".area").hover(ListArea,function(){});
            $(".area").click(AddArea);
        });
    });
};


function ListArea(){

    var top = $(this).offset().top + 22;
    var left = $(this).offset().left;
    var code = $(this).attr("code");

    area.lastCode = code;
    area.getArea(code,function(value){
        if(typeof(value) == 'undefined' || value.length == 0) return;
        var hint = $("#hint");
        var html = G.areaTempl.process({'data':value});
        hint.html(html + "<div class='clear'>&nbsp;</div>");

        hint.css("top",top);
        hint.css("left",left );
        hint.show();

        $('.areaSelector').click(AddArea);
    });
};

/*================================================*/
function afterLoaded(){
    G.isLastPage = false;
    var id = $(this).attr('id');
    $("#" + id + " > span").css("cursor","pointer");
    $("#" + id).click(function(){
        $('.selectedCatalog').removeClass("selectedCatalog");
        $(this).children('span').addClass("selectedCatalog");
        $('#y_flag').css('top',$(this).offset().top -offsetY);
        $('#y_flag').show();
        $('.main').empty();
        $('.y_ruler').height("1333px");

        G.isLastPage = false;
        return changeCompanyList(id);
    });
    return false;
};
function ShowArea(N)
{
	$('.area.show').addClass('hide');
    $('.area.show').removeClass('show');
	AreaCurrentPage=N;
	if(N>=AreaAllPage || AreaAllPage<=1) {$('.areanext-img').removeClass("show");$('.areanext-img').addClass("hide");}
	else {$('.areanext-img').removeClass("hide");$('.areanext-img').addClass("show");}
	if(N<=1) {$('.areapre-img').removeClass("show");$('.areapre-img').addClass("hide");}
	else{$('.areapre-img').removeClass("hide");$('.areapre-img').addClass("show");}
	for(var i=6*(parseInt(N)-1)+1;i<=6*(parseInt(N));i++)
	{
	   $('.area[@order="'+ i +'"]').removeClass('hide');
	   $('.area[@order="'+ i +'"]').addClass('show');
	}
};
function changeCompanyList(id){/*load company*/
    if(G.isLastPage) return false;
    if(G.isBusy) return false;
    G.isBusy = true;
    catalog.lastNodeId = id;
    com.getData(area.lastCode ||  ClientArea ,id,com.page,function(data){
        if(typeof(data) == 'undefined' || data.length == 0){
            G.isBusy = false;
            G.isLastPage = true;
            return;
        }
        if(data.length < 10) G.isLastPage = true;
        var result  = G.templator.process({"data":data});/*create Html*/
		result=result.replace("{pageAuto}",com.pageAuto);
        $('.main').append(result);
        var mainHeight = $('.main').height();
        var yHeight = $('.y_ruler').height();
		$('#openPageAutoText_'+(com.pageAuto-1)).addClass("hide");
        $('.y_ruler').height(mainHeight > yHeight ? mainHeight : yHeight);
        G.isBusy = false;
    });
    com.page += 10;
	com.pageAuto += 1;
    return false;
};

function GoToPage(P)
{
	$('.main').empty();
	G.isLastPage=false;
	G.isBusy=false;
	$('.y_ruler').height("600px");
	com.page=parseInt(P)>0?((parseInt(P)-1)*10):0;
	com.pageAuto=0;
	changeCompanyList(catalog.lastNodeId);
};
function Search()
{
	var keyWord=$.trim($("#keywordsch")[0].value);
	if(keyWord=="")
	{
		alert("请输入关键字!");
		return;
	}
	$('.main').empty();
	G.isLastPage=false;
	G.isBusy=false;
	$('.y_ruler').height("600px");
	com.page=0;
	com.pageAuto=0;
	com.kWord=keyWord;
	changeCompanyList(catalog.lastNodeId);
};
$d("areaTempl").value='\
    {for it in data}\
    <div class="hint_item"><nobr><a class="areaSelector" href="#"  code="${it.Code}">${it.Title}</a></nobr></div>\
    {/for}\
	';
$d("subareaTempl").value='\
    <span id="areapre-img" onclick="ShowArea(AreaCurrentPage-1);" class="areapre-img" />\
    {for it in data}\
    <nobr><span class="area hide" code="${it.Code}" order="${it.Order}">${it.Title}</span></nobr>\
    {/for}\
    <span id="areanext-img" onclick="ShowArea(AreaCurrentPage+1);" class="areanext-img" />\
	';
$d("templ").value='\
{for d in data}\
{if d.cType==\'0\'}\
<table style="width:550px;padding:1em;border-bottom:dashed 1px grey;"  onmouseout="javascript:this.style.background=\'#ffffff\'" onmouseover="javascript:this.style.background=\'#ffffee\';">\
    <tr>\
        <th colspan="2"  class="com_title"  style="text-align:left;color:#FF6600;">\
        <img alt=\'35la.com\' width=\'16\' height=\'16\' src="images/favicon.ico" />\
        <a target=\'_blank\' href=\'${d.WebSite}\'> ${d.Name}</a>\
		${d.Location}\
        </th>\
    </tr>\
    <tr>\
        <td width=\'66\'><img alt="${d.Name}" src="${d.Logo}" width=\'60\' /></td>\
        <td width=\'484\' style="text-align:left">\
        <table style="width:484px;">\
        <tr><td colspan="2" style="word-break:break-all;">${d.Synopsis}</td></tr>\
        <tr><td style="width:65px!important;font-size:12px;">联系方式：</td><td style="text-align:left;width:419px;">${d.Contact}</td></tr>\
        <tr><td style="width:65px!important;font-size:12px;">企业地址：</td><td style="text-align:left;width:419px;">${d.Address}</td></tr>\
        </table>\
        </td>\
    </tr>\
</table>\
{else}\
<div class="pagebottom">${d.Synopsis}</div>\
{/if}\
{/for}\
{if data.length == 11}\
<h3 style="width:20em;" class="openPageAutoText" id="openPageAutoText_{pageAuto}">本页将自动展开</h3>\
<hr />\
{/if}\
';
G.templator = TrimPath.parseDOMTemplate("templ");
G.areaTempl = TrimPath.parseDOMTemplate("areaTempl");
G.subareaTempl = TrimPath.parseDOMTemplate("subareaTempl");

/*start*/
$(document).ready(function(){
	changeNavi(ClientArea,false);

    $("#catalog").treeview({/*TreeView*/
		url: G.webDir + "ajax/catalog.html",
		afterCall: afterLoaded,
		toggle : function(){G.isLastPage = false;}
	});

	com.page=parseInt(CurrentPage)>0?(parseInt(CurrentPage)*10):0;

	$('.y_ruler').height("1000px");
	$("#catalog>li").click(function(){
	    var id = $(this).attr('id');
	    $('.selectedCatalog').removeClass("selectedCatalog");
        $(this).children('span').addClass("selectedCatalog");
        $('#y_flag').css('top',$(this).offset().top -offsetY);
        $('#y_flag').show();
        $('.main').empty();
        $('.y_ruler').height("1333px");
        return changeCompanyList(id);/**/
	});

	setInterval('checkScrollPos()',howOften);/*	*/

	$(".area").hover(ListArea,function(){}); /**/

    $("#hint").hover(function(){},function(){
        $(this).hide("fast");
    });

    area.getArea(ClientArea,function(value){
		var html = G.subareaTempl.process({"data":value});
		AreaAllPage=Math.ceil(value.length/6);
		AreaAllPage=AreaAllPage==0?1:AreaAllPage;
		AreaCurrentPage=1;
        $('#subareas').html(html);
		$('.areapre-img').addClass("hide");
		if(AreaAllPage<=1) $('.areanext-img').addClass("hide");
        $(".area").hover(ListArea,function(){});
        $(".area").click(AddArea);
		ShowArea(1);
    });

});
