﻿//*----------------------------------------------------------------
    // Copyright (C) 2008 KUQU.COM 版权所有。
    // Purpose:  对于Url传值中参数的处理操作

    // Author:   JIANG,ZHIMING(binglingshui@gmail.com)
    // Version:  1.0 
    // Created:  2008年4月20日 14:15:37
 
    // Description:  本页只负责将查询
 
    // 修改标识1：
    // 修改描述：
//----------------------------------------------------------------*/


    //对分页存储过程各事件的响应
    function UpdateParameterValue(parameterName, parameterValue, url)
    {
        //是否存在当前变量名
        var re = new RegExp(parameterName + "=([\\d])+\\**([\\d-])*","ig");//数字
        //var re2 = new RegExp(parameterName + "=([\\.*\\w]+)*","ig");      //文字
        var re2 = new RegExp(parameterName + "=([^&])*","ig");      //文字
        var reg = /\?[\w]+\=[\w]*/ig;  //是否带有?文字=文字   

        if(re.test(url))
        {//数字
            url = url.replace(re, parameterName + '=' + parameterValue);
        }
        else
        {
            if(re2.test(url))
            {//文字
                url=url.replace(re2,parameterName + '=' + parameterValue);
            }
            else
            {//如果都匹配不成功，说明Url中不存在该值。则附加到最后。
                if(reg.test(url))
                {//再去匹配  是否带有?文字=文字   
                    url += '&' + parameterName + '='+parameterValue;
                }
                else
                {
                    url += '?' + parameterName + '=' + parameterValue;
                }        
            }//if_else   re2.test(url)
        }//if_else   re.test(url)
        
        return url;
    } 
            
    
    
    //根据参数名，得到Url参数值  添加了对新htm的支持    -----------暂不支持中文参数值------现在支持了^_^
 function GetParameterValueByName(parameterName, url)
    {   
         parameterName=parameterName.toLowerCase();
        var c="-" + parameterName + "--";
        var regHtm = new RegExp("-" + parameterName + "--([^-])*---","ig");
        if(regHtm.test(url))
        {   
        var s=url.match(regHtm)[0]; 
        s=s.substr(c.length,s.length-c.length); 
        s=s.replace("---","");
        return s;
        }
        else{
        var reg = new RegExp("(^|&|\\?)" + parameterName + "=([^&])*","ig");

        if(reg.test(url))//取后的格式为&/?pName=pValue
	    {                
		    var str = url.match(reg)[0];
		        //str = str.substring(1, str.length);  //去掉之前的?/&
			str = str.split('=');
			return unescape(str[1]);//Return The value
	    }
	    else
	    {
	        return -1;
	    }
	    }
    }
    
     
    //删除Url里的某一参数及其值
    //几种情况  1,?pName=pValue <null>   2,&pName=pValue    3,?pName=pValue&
    function DelUrlParameter(parameterName, url)
    {
        var reg1 = new RegExp("(\\?)" + parameterName + "=([^&])*&","ig"); //?pageindex=''&
        var reg2 = new RegExp("(\\?)" + parameterName + "=([^&])*","ig"); //?pageindex=''
        var reg3 = new RegExp("(&)" + parameterName + "=([^&])*","ig"); //&pageindex=''
        
//        var reg1 = new RegExp("(\\?)" + parameterName + "=([\\.*\\w]+)*&","ig"); //?pageindex=''&
//        var reg2 = new RegExp("(\\?)" + parameterName + "=([\\.*\\w]+)*","ig"); //?pageindex=''
//        var reg3 = new RegExp("(&)" + parameterName + "=([\\.*\\w]+)*","ig"); //&pageindex=''

//        var reg1 = new RegExp("(\\?)" + parameterName + "=([\w])*&","ig"); //?pageindex=''&
//        var reg2 = new RegExp("(\\?)" + parameterName + "=([\w])*","ig"); //?pageindex=''
//        var reg3 = new RegExp("(&)" + parameterName + "=([\w])*","ig"); //&pageindex=''

	    if(reg2.test(url))
	    {
	        if(reg1.test(url))
	        {
	            url = url.replace(reg1, "?");
	        }
	        else
	        {
	            url = url.replace(reg2, "");
	        }
	    }
	    else if(reg3.test(url))
	    {
	        url = url.replace(reg3, "");
	    }
	    return url;
    }
    

    
    //跳到页面
    //PageIndex为用户手输，需判断输入数据合法性
    function TurnToPageByValue(parameterName, pageIndex)
    {
        var url = window.location.href.replace("#", "");
        
        //if(pageIndex > 1 && pageIndex < pageCount)
        //{
            window.location.href = UpdateParameterValue(parameterName, pageIndex, url);
        //}
        //else
        //{
        //    alert("页码超出范围，请检查操作！");
        //}
    }
    
    function TurnToPageByContorol(parameterName, contorlName, pageCount)
    {
        var url = window.location.href.replace("#", "");
        var pageIndex = document.getElementById(contorlName).value;
        if(pageIndex > 1 && pageIndex < pageCount)
        {
            window.location.href = UpdateParameterValue(parameterName, pageIndex, url);
        }
        else
        {
            alert("页码超出范围，请检查操作！");
        }        
    }
    
    //上一页，传pageIndex(参数名)
    function PreviousPage(parameterName, pageCount)
    {
        //1，先找出当前页面
        var url = window.location.href.replace("#", "");
        var pageIndex = parseInt(GetParameterValueByName(parameterName, url));
        
        if (pageIndex == -1)
        {pageIndex = 0}
        
        //3，重新赋值
        if(pageIndex > 1 && pageIndex < pageCount)
        {
            window.location.href = UpdateParameterValue(parameterName, pageIndex--, url);
        }
        else
        {
            alert("页码超出范围，请检查操作！");
        }
    }
    
    //下一页  pageIndex(参数名)
    function NextPage(parameterName, pageCount)
    {
        //1，先找出当前页面
        var url = window.location.href.replace("#", "");
        var currPageIndex = parseInt(GetParameterValueByName(parameterName, url));
        
        if (currPageIndex == -1)
        {currPageIndex = 1}

        //3，重新赋值
        if(currPageIndex > 0 && currPageIndex < pageCount)
        {   
            var newPageIndex = currPageIndex+1;

            var newUrl = UpdateParameterValue(parameterName, newPageIndex, url);
            window.location.href = newUrl;
        }
        else
        {
            alert("页码超出范围，请检查操作！");
        }
    }
    
    //更新Url并重置Url
    function UpdateParameterAndResetUrl(parameterName, parameterValue)
    {
        var url = window.location.href.replace("#", "");
        var newUrl = UpdateParameterValue(parameterName, parameterValue, url);

        if(parameterName != "pageIndex")
        {
            newUrl = DelUrlParameter("pageIndex", newUrl);//删除掉"pageIndex"
            window.location.href = newUrl;
        }
        
        window.location.href = newUrl;
    }
    
    //更新Url并重置Url
    function UpdateParameterAndResetUrlWithUrl(parameterName, parameterValue, url)
    {
        var newUrl = UpdateParameterValue(parameterName, parameterValue, url);

        if(parameterName != "pageIndex")
        {
            newUrl = DelUrlParameter("pageIndex", newUrl);//删除掉"pageIndex"
            window.location.href = newUrl;
        }
        
        window.location.href = newUrl;
    }
        

    //获取url内参数值赋值给相应控件
    //Url内参数名，控件名，Url地址。
    function SetValueToControl(urlParameterName, controlName, url)
    {
        var reg = new RegExp("(^|&)" + urlParameterName + "=([^&]*)(&|$)");
        var obj = document.getElementById(controlName);
        var r = url.toLowerCase().match(reg);
        
        //？？？无法取值。
        if(r != null)
        {
            obj.value = r[2];
        } 
    }
    


    
    /*
    //For Search
    function ChangeParameterValue2(parameterValue, parameterName)
    {
        //注意Js区分大小写
         var reg = /\?[\w]+\=[\w]+/ig; 
         var reg2 = new RegExp("(^|&|\\?)" + parameterName.toLowerCase() + "=([^&]*)(&|$)"); 
            
        if(reg2.test(url))
        {            
            var str = url.match(reg2)[0].replace("&","").replace("?",""); 
            url = url.replace(str,parameterName + "=" + parameterValue);
        }
        else
        {
            if(reg.test(url))
            {
                url+='&' + parameterName + '='+parameterValue;
            }
            else
            {
                url+= '?' + parameterName + '=' + parameterValue;
            }        
        }
    }
        

    var url = unescape(window.location.href).replace("#","").toLowerCase();
    InitSearchPage();

    //初始化查询页的查询条件表单
    function InitSearchPage()
    {
        SetValueToControl("keyWord", "KeyWord", url);
    }
    
    */
        
        
//菜单点击
function TabMenuChange(obj, total)
{
    var size = total;
    var array = new Array(size);
    
    for(var i = 0; i < size; i++)
    {
        var current = "tabMenu" + i;
        array[i] = current;
    }
    
    for(var j = 0; j < size; j++)
    {
        //为选中项
        if(obj == array[j])
        {
            document.getElementById(array[j]).className = "on";
	        document.getElementById("tabMenu" + j.toString()).style.display = "";
	        
	        var url = window.location.href.replace("#", "");
            url = UpdateParameterValue("OrderBy", j.toString(), url);	
            window.location.href = url;	
        }
        else
        {
            document.getElementById(array[j]).className="";
    	    document.getElementById("tabMenu" + j.toString()).style.display = "block";
        }       
    }
}


//TABMENU 初始化
function TabMenuInit(tabMenuName, size)
{
    var url = window.location.href.replace("#", "");
    var currOrderBy = parseInt(GetParameterValueByName("orderBy", url));
    
    if (currOrderBy == -1)
    {currOrderBy = 0}
    
    for(var j = 0; j < size; j++)
    {
        //为选中项
        if(j == currOrderBy)
        {
            document.getElementById("tabMenu" + j.toString()).className = "On";
	        //document.getElementById("tabMenu" + j.toString()).style.display = "";
        }
        else
        {
            document.getElementById("tabMenu" + j.toString()).className="";
    	    //document.getElementById("tabMenu" + j.toString()).style.display = "block";
        }       
    }
}

//
function ClickToNewUrl(Name,value,url)
{

    var newurl = "";
    newurl = UpdateParameterValue(Name, value, url);
    if(Name.toString().toLowerCase() != "pageindex")
    { 
        newurl = UpdateParameterValue("pageindex", 1, newurl);
    }
    window.location.href = newurl;
}

//跳转到新的连接的同时保留其中一个参数
function SaveParameterAndToNewUrl(Name,nowurl,newurl)
{
    var value;
    value = GetParameterValueByName(Name,nowurl);
    if(value != -1)
    {
        window.location.href = UpdateParameterValue(Name, escape(value), newurl);
    }
    else
    {
        window.location.href = newurl;
    }
}
