﻿     
var pubValues = new Array("","0","3","7","15","30","60","90","180");
var tagNames = new Array("object","select","iframe");
var X = 0;
var Y = 0;
var isIECheck = true;
var MainSite="http://www.333job.com";
if(navigator.appName.indexOf("Explorer") < 0)
	var isIECheck = false;
	

function WinDragDown(event,win)
{
	event = event||window.event;
	var obj_left = win.style.left.replace(/p|x/g,"");
	var obj_top = win.style.top.replace(/p|x/g,"");
	var clientX = String(event.clientX).replace(/p|x/g,"");
	var clientY = String(event.clientY).replace(/p|x/g,"");
	X = clientX - obj_left;
	Y = clientY - obj_top;
}

function WinDrag(event,win)
{
	if( X == 0 || Y == 0 ) 
	    return ;
	event = event||window.event;
	if ( event.button != 1 &&  event.button != 0 )
	    return ; 
	
	var objWidth=win.clientWidth;
	var objHeight=win.clientHeight;

	var leftPo= event.clientX-X;
	if ( leftPo < 0 ) 
		leftPo=0;
    
    var MaxLeft = document.documentElement.scrollWidth -objWidth-2;
	if ( leftPo >= MaxLeft ) 
		leftPo=MaxLeft;
		
	var topPo=event.clientY-Y;
	if ( topPo < 0 ) 
		topPo=0;
		
    var MaxTop = document.documentElement.scrollHeight -objHeight-2;
	if ( topPo >= MaxTop )
		topPo = MaxTop ;
	win.style.left=leftPo+'px';
	win.style.top=topPo+'px';
	
}
function createSelectedFlag1(win,chk_element)
{
    var sltitem = document.createElement("li");
    sltitem.owner = chk_element;
    var name_h2 = document.createElement("h2");
    name_h2.innerHTML = chk_element.owner.name;
    name_h2.lang=chk_element.value;
    sltitem.appendChild(name_h2);
    var name_img = document.createElement("img");
    name_img.alt = "删除该项";
    name_img.src = MainSite+"/App_Themes/Images/pupdiv/delete.gif";
    sltitem.appendChild(name_img);
    sltitem.title = chk_element.owner.name;
    chk_element.flag = sltitem;
    name_img.onclick= function(event)
    {
        event = event||window.event;
        var src = event.srcElement||event.target;
        var chk = src.parentNode.owner;
        chk.checked = false;
        chk.flag.parentNode.removeChild(chk.flag);
        var item = chk.owner;
        $("#"+win.id+"_"+chk_element.value).removeAttr("checked");
        $("input:checkbox[checked]").next("[innerHTML='"+chk_element.owner.name+"']").prev().removeAttr("checked");
        var arr = win.hidipt.value.split(',');
        var arrName=win.target.value.split(',');
        var arr1 = new Array();
        var arr2 = new Array();
        for(var i = 0;i < arr.length;i++)
        {
            if(parseInt(arr[i]) != parseInt(chk_element.value))
            {
                arr1.push(arr[i]);
            }
        }
        for(var j = 0;j < arrName.length;j++)
        {
            if(arrName[j] != chk.owner.name)
            {
                arr2.push(arrName[j]);
            }
        }
        win.target.value=arr2;
        win.hidipt.value=arr1.toString();
    }
}
function ModelWin(shadowPanel , input ,hidipt, id , titlename , width , height , mutilSelect, maxselect,msg ,defaultvalue,showLargeCagetory)
{
    var Main = document.createElement("div");
    Main.id =id;
    this.target=input;
    this.isShowBigClass=((typeof(showLargeCagetory) == "undefined")?true:showLargeCagetory);
    this.shadowPanel=shadowPanel;
    Main.className="main";
    Main.style.width = width;
    Main.style.height = height;
    this.Main = Main;
    Main.owner = this;
    this.titlename = titlename;
    this.defaultvalue = defaultvalue||input.value;
    this.selectMode = mutilSelect;
    this.maxselect = maxselect;
    this.msg = msg;
    if(hidipt)
        this.hidipt = hidipt;
    this.items = new Array();
    //窗口标题栏
    this.Title = createWinTitle(this);
    //操作栏
    if(Main.id != "WinPubDate")
        this.ToolBar = createWinToolBar(this);
    input.onclick=function(event)
    {
        event = event||window.event;
        setModelWinPosition(Main);
        if(shadowPanel)
        {
            shadowPanel.style.display="block";
            shadowPanel.style.width=document.documentElement.scrollWidth;
            shadowPanel.style.height=document.documentElement.scrollHeight;
        }
        Main.style.display="block";
        if(!Main.owner.Content)
        {
            //内容部分
            Main.owner.Content = createContentPanel(Main.owner);
            createContents(Main.owner);
           //alert(Main.innerHTML); 
        }
	    document.body.onmousemove = function(event)
	    {
	        WinDrag(event,Main);
	    }
	    document.body.onmouseup = function()
	    {X = 0;Y = 0;}
	    
        //设置选定项
        Main.owner.setValues(Main.owner);
        //
        if(isIECheck)
            event.srcElement.blur();
        else
            event.target.blur();
        if(!isIECheck)
            return;
        
        for(var i =0 ; i< tagNames.length ; i++)
        {
            var elements = document.getElementsByTagName(tagNames[i]);
            for (var n=0 ; n<elements.length ; n++)
                elements[n].style.visibility = "hidden";
        }
    }
    this.setValues= function(win)
    {
        if(id != "WinIndustry" && id != "WinPubDate")
        {
            if(hidipt.value!="")
            {
                var arr = hidipt.value.split(',');
                var names = input.value.split(',');
                for(var i=0;i< arr.length;i++)
                {
                    var chk = document.createElement("<input type='checkbox'/>");
                    chk.value=arr[i];
                    chk.owner=Main;
                    chk.owner.name=names[i];
                    createSelectedFlag1(win,chk);
                    //得到大类
                    var obj=$("#"+win.id+"_"+arr[i]);
                    if(obj != null)
                    {
                        obj.attr("checked","true");
                    }
                    //得到小类
                    var obj1=$("input:checkbox").next("[innerHTML='"+names[i]+"']").prev();
                    if(obj1 != null)
                    {
                        obj1.attr("checked","true");
                    }
                    win.selectedItems.appendChild(chk.flag);
                }
            }
        }
        else
        {
            var arr = hidipt.value.split(',');
            for(var c=0;c<arr.length;c++)
            {
                var val = arr[c];
                for(var i=0 ;i<win.items.length ; i++ )
                {
                    var itm = win.items[i];
                    var chk = itm.selectCtl;
                    if(itm.value==val)
                    {
                        chk.checked = true;
                        for(var j=0;j<itm.subItems.length;j++)
                        {
                            var sub = itm.subItems[j];
                            sub.selectCtl.checked=chk.checked;
                            sub.selectCtl.disabled = true;
                        }
                        win.selectedItems.appendChild(chk.flag);
                    }
                    else
                    {
                        for(var j=0;j<itm.subItems.length;j++)
                        {
                            var sub = itm.subItems[j];
                            if(sub.value==val)
                            {
                                sub.selectCtl.checked=true;
                                win.selectedItems.appendChild(sub.selectCtl.flag);
                            }
                        }
                    }
                }
            }
        }
    }
    this.getValues= function(win)
    {
        var selected = new Array();
        var names = new Array();
//        for(var i=0 ;i<win.items.length ; i++ )
//        {
//            var itm =win.items[i]
//            var chk = itm.selectCtl;
//            if(chk.checked)
//            {
//                selected.push(itm.value);
//                names.push(itm.name);
//            }
//            else
//            {
//                for(var j=0;j<itm.subItems.length;j++)
//                {
//                    var sub = itm.subItems[j];
//                    if(sub.selectCtl.checked)
//                    {
//                        selected.push(sub.value);
//                        names.push(sub.name);
//                    }
//                }
//            }
//        }
        if(win.selectedItems && win.selectedItems.childNodes.length>0)
        {
            for(var i = 0 ;i < win.selectedItems.childNodes.length;i++)
            {
                var h2Obj = $(win.selectedItems.childNodes[i]).find("h2");
                selected.push(h2Obj.attr("lang"));
                names.push(h2Obj.attr("innerHTML"));
            }
        }
        win.hidipt.value = selected;
        if(selected.length<=0)
            win.target.value = win.defaultvalue;
        else
            win.target.value = names;
            
    }
    this.init = function(win)
    {
        if(!win.selectedItems)
            return;
        while(win.selectedItems.childNodes.length>0)
        {
            win.selectedItems.removeChild(win.selectedItems.childNodes[0]);
        }
        for(var i=0 ; i< win.items.length; i++)
        {
            if(win.items[i].selectCtl.checked)
                win.items[i].selectCtl.checked = false;
            for(var si =0 ; si< win.items[i].subItems.length; si++)
            {
                win.items[i].subItems[si].selectCtl.checked = false;
                win.items[i].subItems[si].selectCtl.disabled = false;
            }
        }
    }
    document.body.appendChild(Main);
}

//标题栏
function createWinTitle(win)
{
    var Main = win.Main;
    var Title = document.createElement("div");
    Title.style.width = Main.style.width;
    Title.className = "title";
    Title.onmousedown = function(event){WinDragDown(event,Main)};
    var titleSpan = document.createElement("span");
    titleSpan.innerHTML = win.titlename;
    Title.appendChild(titleSpan);
    var btn_close = document.createElement("input");
    btn_close.type="image";
    btn_close.name="btn_close";
    btn_close.id="btn_close";
    btn_close.src=MainSite+"/App_Themes/Images/pupdiv/close_div.gif";
    btn_close.onclick = function(){winClose(win);}
    Title.appendChild(btn_close);
    Main.appendChild(Title);
    return Title;
}
//工具栏
function createWinToolBar(win)
{
    var Main = win.Main;
    var ToolBar = document.createElement("div");
    ToolBar.style.width = Main.style.width;
    ToolBar.className = "toolbar";
    Main.appendChild(ToolBar);
    
    //
    var span = document.createElement("span");
    span.innerHTML="提示："+win.msg;
    ToolBar.appendChild(span);
    var btn_accept = document.createElement("input");
    btn_accept.type="button";
    btn_accept.name="accept";
    btn_accept.id="accept";
    btn_accept.className="accept";
    btn_accept.onclick = function()
    {
        win.getValues(win);
        winClose(win);
    }
    ToolBar.appendChild(btn_accept);
    var btn_reset = document.createElement("input");
    btn_reset.type="button";
    btn_reset.name="reset";
    btn_reset.id="reset";
    btn_reset.className="reset";
    btn_reset.onclick = function()
    {
        win.init(win);
    }
    ToolBar.appendChild(btn_reset);
    var div = document.createElement("div");
    div.style.width=ToolBar.style.width;
    div.className="selected";
    var selectedItems = document.createElement("ul");
    div.appendChild(selectedItems);
    win.selectedItems = selectedItems;
    Main.appendChild(div);
    return ToolBar;
}
//内容
function createContentPanel(win)
{
    var contentPanel = document.createElement("div");
    //contentPanel.style.lineHeight="25px";
    contentPanel.className = "ct";
    win.Main.appendChild(contentPanel);
    var ul = document.createElement("ul");
    ul.className = "ul";
    contentPanel.appendChild(ul);
    return ul;
}
function createContents(win)
{   
    switch(win.Main.id)
    {
        case "WinJobType":
            createJobTypePanel(win);
            break;
        case "WinJobArea":
            createJobAreaPanel(win);
            break;
        case "WinIndustry":
            createIndustryPanel(win);
            break;
        case "WinPubDate":
            createPubdatePanel(win);
            break;
        case "RadioWinJobType":
            createRadioWinJobType(win);
            break;
        default:
            return ;
            break;
    }
}
function createSelectedFlag(chk_element)
{
    //alert(chk_element.id)
    var sltitem = document.createElement("li");
    sltitem.owner = chk_element;
    var name_h2 = document.createElement("h2");
    name_h2.innerHTML = chk_element.owner.name;
    name_h2.lang=chk_element.value;
    sltitem.appendChild(name_h2);
    var name_img = document.createElement("img");
    name_img.alt = "删除该项";
    name_img.src =MainSite+"/App_Themes/Images/pupdiv/delete.gif";
    sltitem.appendChild(name_img);
    sltitem.title = chk_element.owner.name;
    chk_element.flag = sltitem;
    name_img.onclick= function(event)
    {
        event = event||window.event;
        var src = event.srcElement||event.target;
        var chk = src.parentNode.owner;
        chk.checked = false;
        chk.flag.parentNode.removeChild(chk.flag);
        var item = chk.owner;
        if(item.subItems)
            for(var i=0; i< item.subItems.length ; i++)
            {
                var subitem = item.subItems[i];
                subitem.selectCtl.checked = chk.checked;
                subitem.selectCtl.disabled=chk.checked;
            }
    }
}



function Item(win, value ,txt , children)
{
    var li = document.createElement("li");
    li.owner = this;
    this.value = value;
    this.name = txt;
    this.parent = win;
    var chk = document.createElement("input");
    chk.id=win.id+"_"+value;
    chk.type = win.selectMode?"checkbox":"radio";
    chk.name = "chk_"+win.id;
    chk.value = value;
    this.selectCtl = chk;
    chk.owner = this;
    createSelectedFlag(chk);
    if(!win.isShowBigClass)
    {
       chk.style.display="none";   
    }
    chk.onclick = function(event)
    {
        event = event||window.event;
        var chk_element = event.srcElement||event.target;
        if(chk_element.checked)
        {
            var sum = win.selectedItems.childNodes.length+1;
            if(sum > win.maxselect)
            {
                chk_element.checked = false;
                alert(win.msg);
                return;
            }            
            win.selectedItems.appendChild(chk_element.flag);
        }
        else
        {
            var deletingitem;
            try
            {
                deletingitem = chk_element.flag;
                win.selectedItems.removeChild(deletingitem);
            }
            catch(e)
            {
                var len = win.selectedItems.childNodes.length;
                var firstChildHtml=deletingitem.firstChild.innerHTML;
                if(len > 0)
                {
                    var myChild=null;
                    var canRemoveChild=false;
                    for(var i = 0;i < len;i++)
                    {
                        myChild = win.selectedItems.childNodes[i];
                        if(myChild.firstChild.innerHTML==firstChildHtml)
                        {
                            canRemoveChild=true;
                            break;
                        }
                    }
                    if(canRemoveChild)
                       win.selectedItems.removeChild(myChild);
                }
            }
        }
        if(chk_element.owner.subItems&&chk_element.owner.subItems.length>0)
        {
            for(var i = 0 ; i < chk_element.owner.subItems.length ; i++)
            {
                var subitem = chk_element.owner.subItems[i];
                if(!subitem.selectCtl.disabled&&subitem.selectCtl.checked)
                {
                    var deleteFlag = subitem.selectCtl.flag;
                    try
                    {
                        win.selectedItems.removeChild(deleteFlag);
                    }
                    catch(e)
                    {
                        var len = win.selectedItems.childNodes.length;
                        var firstChildHtml=deleteFlag.firstChild.innerHTML;
                        var canRemoveNode=false;
                        if(len > 0)
                        {
                            var myChild=null;
                            for(var j = 0;j < len;j++)
                            {
                                myChild = win.selectedItems.childNodes[j];
                                if(myChild.firstChild.innerHTML==firstChildHtml)
                                {
                                    canRemoveNode=true;
                                    break;
                                }
                            }
                            if(canRemoveNode)
                                win.selectedItems.removeChild(myChild);
                          }
                    }
                }
                subitem.selectCtl.checked = chk_element.checked;
                subitem.selectCtl.disabled = chk_element.checked;
            }
        }
    }
    li.appendChild(chk);
    var h2 = document.createElement("h2");
    h2.owner = this;
    h2.innerHTML = txt;
    li.title = txt;
    li.appendChild(h2);
    this.labelCtl = h2;
    li.className="item";
    this.li=li;
    this.subItems = new Array();
 
    if(children&&children.length>0)
    {
        var img = document.createElement("img");
        img.src = MainSite+"/App_Themes/Images/pupdiv/blue.gif";
        img.owner=this;
        li.appendChild(img);
        var div = document.createElement("div");
        div.id = "pop_"+value;
        div.style.position="absolute";
        this.pop = div;
        li.appendChild(div);
        div.className = "pop";
        var callershow;
        var callerhide;
        this.show = function()
        { 
            if(img.owner.subItems.length<=0)
            {
                var ol = document.createElement("ul");
                for(var i=0; i< children.length;i++)
                {
                    var child = new subItem(img.owner , children[i].id ,children[i].name,win);
                    img.owner.subItems.push(child);
                    ol.appendChild(child.li);
                }
                if(children.length > 8)
                {
                    ol.className = "ul1";
                }
                else
                {
                    ol.className = "ul2";
                }
                div.appendChild(ol);
            }
            div.style.left = (div.parentNode.offsetLeft + div.parentNode.offsetWidth)+"px";
            div.style.top = div.parentNode.style.top;
            div.style.display = "block";
        }
        this.hidden = function()
        {
            div.style.display = "none";
        }
        li.onmouseover=function()
        {
            var owner = this.owner;
            if(callerhide)
                window.clearTimeout(callerhide);
            if(callershow)
                window.clearTimeout(callershow);
            callershow=window.setTimeout(owner.show,500);
        }
        li.onmouseout=function()
        {
            var owner = this.owner;
            if(callershow)
                window.clearTimeout(callershow);
            if(callerhide)
                window.clearTimeout(callerhide);
            callerhide=window.setTimeout(owner.hidden,100);
        }
    }
}
function subItem(parent,value ,txt,win)
{
    var li=document.createElement("li");
    this.value = value;
    this.name = txt;
    this.parent = parent;
    var windd =$(".main");
   var win = windd[0] 
    var chk = document.createElement("input");
    chk.type="checkbox";
    chk.name="chk_"+win.id;
    chk.id="subitem_"+parent.value+"_"+value;
    chk.value=value;
//    if(parent.selectCtl.checked==false)
//    {
//        if(win.selectedItems.childNodes.length>0)
//        {
//            var arr = win.hidipt.value.split(',');
//            var isIn=true;
//            for(var i=0;i< arr.length;i++)
//            {
//                if(parseInt(value) == parseInt(arr[i]))
//                {
//                   chk.defaultChecked=true;
//                   isIn=false;
//                   break;
//                } 
//            }
//            if(isIn)
//            {
//              chk.defaultChecked=false;
//            }
//        }
//    }
//    else
//    {
//        chk.defaultChecked=true;
//    }
    if(parent.selectCtl.checked)
    {
        chk.disabled = true;
    }
   
    this.selectCtl = chk;
    chk.owner=this;
    createSelectedFlag(chk);
    chk.onclick=function(event)
    {
        event = event||window.event;
        var chk_element = event.srcElement||event.target;
        if(chk_element.disabled)
            return;
        var win = chk_element.owner.parent.parent;
        if(chk_element.checked)
        {
            var sum = win.selectedItems.childNodes.length+1;
            if(sum > win.maxselect)
            {
                chk_element.checked = false;
                alert(win.msg);
                return;
            }
            win.selectedItems.appendChild(chk_element.flag);
        }
        else
        {
            var deletingitem;
            try
            {
                deletingitem = chk_element.flag;
                win.selectedItems.removeChild(deletingitem);
            }
            catch(e)
            {
                var len = win.selectedItems.childNodes.length;
                var firstChildHtml=deletingitem.firstChild.innerHTML;
                var canRemoveNode=false;
                if(len > 0)
                {
                    var myChild=null;
                    for(var i = 0;i < len;i++)
                    {
                        myChild = win.selectedItems.childNodes[i];
                        if(myChild.firstChild.innerHTML==firstChildHtml)
                        {
                            canRemoveNode=true;
                            break;
                        }
                    }
                    if(canRemoveNode)
                        win.selectedItems.removeChild(myChild);
                }
            }
        }
    }
    var h2 = document.createElement("h2");
    h2.owner = this;
    h2.innerHTML = txt;
    li.title = txt;
    li.appendChild(chk);
    li.appendChild(h2);
    this.labelCtl = h2;
    this.li = li;
}
var isbluecolor=true;

function createJobTypePanel(win)
{
    if(!JobBigTypes||!JobTypes||!ChildJobTypes)
        return; 
    for(var k=0;k<JobBigTypes.length;k++)
   { 
     var bigdiv = document.createElement("div");
     bigdiv.className="yx_hsbig"; 
     if(isbluecolor)
     {
          bigdiv.style.background="#F5F5F7";
          isbluecolor=!isbluecolor;
     }
     else
     {
          isbluecolor=!isbluecolor;
     }
     win.Content.appendChild(bigdiv);
     var bigul = document.createElement("ul");
     bigdiv.appendChild(bigul);
     var bigli = document.createElement("li");  
     bigli.style.width="150px";
     var h2 = document.createElement("h2");
     h2.style.color="red";
     h2.innerHTML =  JobBigTypes[k].name;
     bigli.title = JobBigTypes[k].name;
     bigul.appendChild(bigli);
     bigli.appendChild(h2);
     var bigtypediv = document.createElement("div");  
     bigtypediv.id="bigtype"; 
     bigtypediv.items = new Array();
     bigtypediv.className="yx_hs";
     bigdiv.appendChild(bigtypediv);
     var bigtype = JobBigTypes[k];


    for(var i=0;i<JobTypes.length;i++)
    {
        if(JobTypes[i].bid==bigtype.id) 
        {
            var type = JobTypes[i];
            var children = new Array();
            for(var n =0;n<ChildJobTypes.length;n++)
            {
                if(ChildJobTypes[n].p_id==type.id)
                    children.push(ChildJobTypes[n]);
            }
            var item = new Item(win, type.id ,type.name, children);
            bigtypediv.items.push(item);
            item.li.style.width="190px";
            //bigdiv.Content=bigtypediv;
            bigtypediv.appendChild(item.li);
            item.labelCtl.style.width = "150px";
        }
    }
}
    
}
function createJobAreaPanel(win)
{
    if(!JobAreas)
        return;
    for(var i=0;i<JobAreas.length;i++)
    {
        var area = JobAreas[i];
        if(area.pid!=0)
            continue;
        var children = new Array();
        for(var n =0;n<JobAreas.length;n++)
        {
            if(JobAreas[n].pid==area.id)
                children.push(JobAreas[n]);
        }
        var item = new Item(win, area.id ,area.name ,children);
        win.items.push(item);
        item.li.style.width="140px";
        win.Content.appendChild(item.li);
        item.labelCtl.style.width = "100px";
    }
}
function createIndustryPanel(win)
{
    if(!Industies)
        return;
    for(var i=0;i<Industies.length;i++)
    {
        var industry = Industies[i];
        var item = new Item(win, industry.id ,industry.name );
        win.items.push(item);
        item.li.style.width = "300px";
        item.labelCtl.style.width = "280px";
        win.Content.appendChild(item.li);
    }
}
function createPubdatePanel(win)
{
    for(var i=0 ; i < pubValues.length ; i++ )
    {
        var li = document.createElement("li");
        var item = document.createElement("a");
        if(i=='')
            item.innerHTML="不限";
        else if(pubValues[i]=='0')
            item.innerHTML="今天";
        else
            item.innerHTML="最近"+pubValues[i]+"天";
            
        item.val = pubValues[i];
        item.href="javascript:void(0)";
        item.style.color = "#003399";
        item.style.fontSize="12px";
        item.style.fontWeight="bold";
        item.style.textDecoration ="none";
        item.onclick = function(event)
        {
		    event = event||window.event;
            var a = event.srcElement||event.target;
            var wnd = win.Main;
            win.hidipt.value = a.val;
            var input = win.target;
            if(a.val!="")
                input.value = a.innerHTML;
            else
                input.value = win.defaultvalue;
            winClose(win);
        }
        li.style.width="70px";
        li.className="item";
        li.style.marginLeft="10px";
        li.style.marginRight="10px";
        li.appendChild(item);
        win.Content.appendChild(li);
    }
}

function winClose(win)
{
    if(win.shadowPanel)
        win.shadowPanel.style.display="none";
    win.Main.style.display="none";
    //窗体初始化
    win.init(win);
    //
    if(!isIECheck)
        return;
    for(var i =0 ; i< tagNames.length ; i++)
    {
        var elements = document.getElementsByTagName(tagNames[i]);
        for (var n=0 ; n<elements.length ; n++)
            elements[n].style.visibility = "visible";
    }
}
function createShadowPanel()
{
    var panel=document.createElement('div');
    panel.style.display="none";
    panel.style.zIndex="99";
    panel.style.top = "0px";
    panel.style.left = "0px";
    panel.style.position = "absolute";
    panel.style.borderStyle = "none";
    panel.style.borderWidth = "0px";
    panel.style.background ="white"; 
    if (isIECheck) 
    {
        panel.style.filter="alpha(opacity=60)";
    }
    else 
    {
        panel.style.opacity=60/100;
    }
    document.body.appendChild(panel);
    return panel;
}

