/**
* siteCode            => sitecd
* productGroup        => group
* productType         => type
* productSubType      => subtype
* productSubSubType   => subsubtype
* productModelCode    => modelcd
* productModelName    => modelnm
 */
var LOC_CONTEXT_PATH = '/iw-sec';
var LOC_PARAM_SITE_CODE = 'sitecd';
var LOC_PARAM_PGROUP_CODE = 'group';
var LOC_PARAM_PTYPE_CODE = 'type';
var LOC_PARAM_PSTYPE_CODE = "subtype";

var LOC_PARAM_CURR_PAGE = 'pageNo';
var LOC_PARAM_SORT_FIELD = 'sortField';
var LOC_PARAM_SORT_ORDER = 'sortOrder';
var LOC_URL_EXTENSION = '.do';
var LOC_PATTERN_FILEPATH = new RegExp("[w\.]+$");

/*
 * location.pathname
 */
function getPathname(a) {
	var pn = self.location.pathname;
	return pn.replace(LOC_PATTERN_FILEPATH, a);
}

/*
 * location.search
 */
function getSearch() {

	var s = self.location.search;
	var a = getSearch.arguments;

	if(a.length==0) {
		return s;
	}

	for(var i=0; i<a.length; i=i+2) {
		var k = a[i];

		var r = new RegExp(k + '=[^&]*');
		var v = (a.length>i+1 && a[i+1]!=null)? (k + '=' + a[i+1]): '';
		if(r.test(s)) {
			s = s.replace(r, v);
		}
		else {
			s += ((s=='')? '?' : '&') + v;
		}
	}

	return s;
}

/*
 * return the value of given parameter extracted from URL QueryString.
 */
function getParameter(k) {

	var s, p, t;
	s = self.location.search;
	p = s.indexOf(k+'=');
	if(p<0) {
		return null;
	}

//	alert(s);
//	alert(k);
//	alert(p);

	t = s.substring(p + k.length + 1);
	p = t.indexOf('&');

//	alert(t);
//	alert(p);

	return (p<0)? t : t.substring(0, p);
}

function getHiddenInput(name, value) {

	alert('NAME: ' + name);
	alert('VALUE: ' + value);

	var ohidden = document.createElement("INPUT");

	ohidden.setAttribute("TYPE", "hidden");
	ohidden.setAttribute("NAME", name);
	ohidden.setAttribute("VALUE", value);
	
	return ohidden;
}

/*
 * copy parameters to input hidden controls.
 */
function copySearchStringToHiddenInput(oform) {

	var args = copySearchStringToHiddenInput.arguments;

	var s = (args.length>1)? args[1]: self.location.search;
	if(s!=null && s.length!=0) {
		s = s.substring(1);
	}
	
	var a = s.split("&");
	var b;
	
	alert(s);
	alert(a);
	alert(a[0]);
	for(var i=0; i<a.length; i++) {
		b = a[i].split("=");
		alert(b);

		alert('NAME: ' + b[0]);
		alert('VALUE: ' + b[1]);
	
		var ohidden = document.createElement("<INPUT TYPE='hidden' NAME='" + b[0] + "' VALUE='" + b[1] + "'>");
	
//		ohidden.setAttribute("TYPE", "hidden");
//		ohidden.setAttribute("NAME", name);
//		ohidden.setAttribute("VALUE", value);
		
//		form.appendChild(ohidden);
		form.insertAdjacentElement('afterBegin', ohidden);
//		form.appendChild(getHiddenInput(b[0], b[1]));
	}
}

/*
 * another logic of implementating getParameter function.
function getParameter(n) {

	var s = new String(self.location.search);

    ss = s.substr(1).split('&');
    for(var i=0; i<ss.length; i++) {
        var pair = ss[i].split('=');
        if(pair[0]==n) {
            return pair[1];
        }
    }

    return null;
}
*/

// popup window.
function openWindow() {

	var a = openWindow.arguments;
	var u = a[0];
	if(u==null) {
		return;
	}
	
	var p = a[1];
	if(p==null || p.length==0) {
		var q = u.lastIndexOf('/');
		p = (q<0)? u.substring(0, u.lastIndexOf('.')) : u.substring(q+1, u.lastIndexOf('.'));
	}
	//	alert(p);
	
	var o = (a[6]==null)? 'menubar=0, scrollbars=0, resizable=0' : a[6];
	if(a[2]!=null) o +=', width='+a[2];
	if(a[3]!=null) o +=', height='+a[3];
	if(a[4]!=null) o +=', left='+a[4];
	if(a[5]!=null) o +=', top='+a[5];

	var win = window.open(u, p, o);
	win.focus();

	return win;
}

function openDialog() {

	var a = openDialog.arguments;
	var u = a[0];
	if(u==null) {
		return;
	}

	var p = a[1];
	var o = (a[6]!=null)? a[6]: 'edge: raised; center: yes; help: no; resizable: no; status: no;';
	if(a[2]!=null) o +=' dialogWidth: '+a[2] + 'px;';
	if(a[3]!=null) o +=' dialogHeight: '+a[3] + 'px;';
	if(a[4]!=null) o +=' dialogLeft: '+a[4] + 'px;';
	if(a[5]!=null) o +=' dialogTop: '+a[5] + 'px;';

	return window.showModelessDialog(u, p, o);
}

function winCloseAndReload() {
	opener.window.location.reload();
	self.close();
}

function isValidPostForm(oform) {
	oform.action += self.location.search;
	return true;	
}

function isValidQuickLinkLinkDeleteForm(oform) {
	oform.action += getSearch("keyword", oform.elements['keyword'].value);
	return true;	
}

function submitGetForm(oform) {
	copySearchStringToHiddenInput(oform);
}

function submitSearchForm(oform) {
//	alert('here1');
//	copySearchStringToHiddenInput(getSearch(LOC_PARAM_SORT_FIELD, null, LOC_PARAM_SORT_ORDER, null));
	
	return true;
}

/** 취소버튼 누를때 */
function cancel() {
	history.back();
}

function changeSiteCode(oselect) {
	self.location.search = LOC_PARAM_SITE_CODE + '=' + oselect.options[oselect.selectedIndex].text;
}

function changeProductGroupCode(oselect) {
	self.location.search = getSearch(LOC_PARAM_PGROUP_CODE, oselect.options[oselect.selectedIndex].value, LOC_PARAM_PTYPE_CODE, '', LOC_PARAM_PSTYPE_CODE, '');
}

function changeProductTypeCode(oselect) {
	self.location.search = getSearch(LOC_PARAM_PTYPE_CODE, oselect.options[oselect.selectedIndex].value, LOC_PARAM_PSTYPE_CODE, '');
}

function changeProductSubTypeCode(oselect) {
	self.location.search = getSearch(LOC_PARAM_PSTYPE_CODE, oselect.options[oselect.selectedIndex].value);
}

/**
 * paging
 *
 * argument, paging
 * argument,
 */
function paging() {

	var a = paging.arguments;
	if(a.length==0) {
		a[0] = 0;
	}

	self.location.search = getSearch(LOC_PARAM_CURR_PAGE, a[0]);
}
/**
 * change location
 */
function locating() {

	var a = locating.arguments;
	if(a.length==0) {
		return;
	}

	var pathname = ((a[0].charAt(0)=='/')? a[0]: getPathname(a[0]));

	self.location = LOC_CONTEXT_PATH + pathname + getSearch(LOC_PARAM_CURR_PAGE, 1, LOC_PARAM_SORT_FIELD, '', LOC_PARAM_SORT_ORDER, '');
}

function sorting(field, order) {

	var currField = getParameter(LOC_PARAM_SORT_FIELD);
	var currOrder = getParameter(LOC_PARAM_SORT_ORDER);
    if(field!=currField || currOrder==null) {
        vcOrder = order;
		if(vcOrder==null) {
			vcOrder = 'desc';
		}
    }
    else if(currOrder=='asc') {
            vcOrder = 'desc';
    }
    else if(currOrder=='desc') {
            vcOrder = 'asc';
    }
    else {
        vcOrder = 'desc';
    }
	
    self.location.search = getSearch(LOC_PARAM_SORT_FIELD, field, LOC_PARAM_SORT_ORDER, vcOrder, LOC_PARAM_CURR_PAGE, 1);
}

function toggleCheckbox(ocheckbox, fname) {

	var oform = ocheckbox.form;
	
	var g = oform.elements[fname];
//	alert(g.length);
	if(!g) {
		ocheckbox.checked = false;
//		event.cancelBubble = true;
		return false;
	}
	
	if(g.length) for(var i=0; i<g.length; i++) {
		g[i].checked = ocheckbox.checked;
	}
	else {
		g.checked = ocheckbox.checked;
	}
}

var _disabled = false;
function toggleStatus() {
//	alert(toggleStatus.arguments[0]);
	alert(_disabled);
	_disabled = !_disabled;
	alert(_disabled);
	$('contrall').style.backgroundColor = _disabled? "#CCCCCC": "#FFFFFF";
}	

//
function erase() {

	if(!confirm("?")) return;

	var a = erase.arguments;
	var l = self.location;
	var s = (a.length==0)? l.search : getSearch('n', a[0]);

	var oform = document.createElement("FORM");
	oform.id = 'erase_form';
	oform.method = 'POST';
	oform.action = getPathname('erase') + s;
	document.appendChild(oform);

	document.forms('erase_form').submit();
}

//장
function keepall(oform, id) {

	var g = document.all(id);
	var n = '';

	if(g.length) for(var i=0; i<g.length; i++) {
		if(g[i].checked) n += ', '+g[i].value;
	}
	else if(g)
		n = ', ' + g.value;

	if(n=='') {
		alert('.');
		return false;
	}

	var node = document.createElement("INPUT");
	node.type = 'hidden';
	node.name = 'ns';
	node.value = n.substring(2);
	oform.appendChild(node);

	oform.action = getPathname('keepall') + self.location.search;
}

//
function deleteall(oform, id) {

	var g = document.all(id);
	var n = '';

	if(g.length) for(var i=0; i<g.length; i++) {
		if(g[i].checked) n += ', '+g[i].value;
	}
	else if(g)
		n = ', '+g.value;

	if(n=='') {
		alert('.');
		return false;
	}
	if(!confirm("?")) return false;

	var node = document.createElement("INPUT");
	node.type = 'hidden';
	node.name = 'ns';
	node.value = n.substring(2);
	oform.appendChild(node);

	oform.action = getPathname('deleteall') + self.location.search;
}

// Search
function search(oForm) {

	var oColl = oForm.elements;
	var query;
	
//	alert(query);
	if(oColl) for(var i=0; i<oColl.length; i++) {
		var o = oColl.item(i);

		switch(o.tagName) {
			case 'SELECT' :
				query = getSearch(o.name, o.options(o.selectedIndex).value);
				break;

			case 'TEXTAREA' :
				break;

			case 'INPUT' :
				switch(o.type) {
					case 'radio' :
						break;

					case 'checkbox' :
						break;

					case 'hidden' :
					case 'text' :
						query = getSearch(o.name, o.value);
						break;

					default :
				}
				break;

			default :
		}
	}

	self.location.search = query;
	return false;
}
