﻿function hexString(value){
	var sb = new StringBuilder('');
	var c;
	if (!value) return sb.toString();
	for (i=0; i<value.length; i++){
		c = value.charCodeAt(i);
		if(c != 10){
			sb.append(c);
			sb.append('#');
		}
	}
	return sb.toString();
}
function unHexString(value){
	var sb = new StringBuilder('');
	if(!value) return sb.toString();
	var arr = value.split('#');	
	for (i in arr){
		sb.append(String.fromCharCode(arr[i]));
	}
	return sb.toString();
}
function cBoolean(val){
	if(val=="false" || val=="0"){
		return false;
	}
	return Boolean(val);
}

function getUrlParameter( parmName ){  
	parmName = parmName.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");  	
	var regexS = "[\\?&]" + parmName + "=([^&#]*)";  
	var regex = new RegExp( regexS );  
	var results = regex.exec( window.location.href );  
	if( results == null ){
		return ""; 
	} else {
		return results[1];
	}
}

function SelectValueCombo(ctrl, value){       
    if (!ctrl || ctrl.length == 0){
        return;
    }   
    ctrl.options[0].selected = true;
    for (var i=0; i< ctrl.length; i++){
        if (ctrl.options[i].value == value){
            ctrl.options[i].selected = true;
            break;
        }
    }
}

function getObject(id){
	return document.getElementById(id);
}
function getObjectValue(id){
	return document.getElementById(id).value;
}
function SysSet(objectid, value){
	var o = getObject(objectid);
	o.value = value;
}
function findReplace(find, replace, replaceWith) {
	var strReplaceAll = find;
	var intIndexOfMatch = strReplaceAll.indexOf(replace);

	// Loop over the string value replacing out each matching
	// substring.
	while (intIndexOfMatch != -1) {
		// Relace out the current instance.
		strReplaceAll = strReplaceAll.replace(replace, replaceWith)


		// Get the index of any next matching substring.
		intIndexOfMatch = strReplaceAll.indexOf(replace);
	}
	return strReplaceAll;
}


//------------------------------------------------------------------
//Drag/Drop functions
//------------------------------------------------------------------
var isDraggingObject = false;
var draggableObjects = new Array();
var draggingObject;
var draggingObject_Left;
var draggingObject_Top;
var draggingObject_x;
var	draggingObject_y;

function makeObjectDraggeble(ctrl, ctrlToClick){
	if(!ctrl){return}
	if(!ctrlToClick){
		ctrlToClick = ctrl;
	}
	var dragObject = {
		ctrl : ctrl,
		ctrlToClick : ctrlToClick
	}
	draggableObjects.push(dragObject);
	ctrlToClick.onmousedown = startDraggingObject;
	ctrlToClick.onmouseup = endDraggingObject;
}
function GetDraggableObject(ctrl){
	for(var i=0; i<draggableObjects.length; i++){
		if(draggableObjects[i].ctrlToClick.id == ctrl.id){
			return draggableObjects[i].ctrl;
		}
	}	
}
function moveDraggableObject(e){
	if (!e) e = window.event;
	if (e.button <= 1 && isDraggingObject){
		draggingObject.style.left = String(draggingObject_Left + e.clientX - draggingObject_x) + "px";
		draggingObject.style.top = String(draggingObject_Top + e.clientY - draggingObject_y) + "px";
		return false;
	}
}
function startDraggingObject(e){	
	var ctrl = GetDraggableObject(this);
	if (!e) e = window.event;	
	if (ctrl){
		isDraggingObject = true;
		draggingObject = ctrl;
		draggingObject_Left = parseInt(draggingObject.style.left);
		draggingObject_Top = parseInt(draggingObject.style.top);
		draggingObject_x = e.clientX;
		draggingObject_y = e.clientY;
		document.onmousemove = moveDraggableObject;
	}
}
function endDraggingObject(){
	isDraggingObject = false;
}


//------------------------------------------------------------------
//Other functions
//------------------------------------------------------------------
function doPostback(RefreshParent){	
	document.forms[0].submit();		
}

function setFocus(formInst, elementInst) {
 if (document.forms.length > 0) {
   document.forms[formInst].elements[elementInst].focus();
 }
}

//------------------------------------------------------------------
//Stringbuilder
//------------------------------------------------------------------
function StringBuilder(value){
    this.strings = new Array("");
    this.append(value);
}

StringBuilder.prototype.append = function (value) {
    if (value) {
        this.strings.push(value);
    }
}

StringBuilder.prototype.clear = function () {
    this.strings.length = 1;
}

StringBuilder.prototype.toString = function () {
    return this.strings.join("");
}
//------------------------------------------------------------------
//addEvent
//------------------------------------------------------------------
function addEvent(obj, evType, fn){ 
	if (obj.addEventListener){ 
		obj.addEventListener(evType, fn, true); 
		return true; 
	} else if (obj.attachEvent){ 
	var r = obj.attachEvent("on"+evType, fn); 
		return r; 
	} else { 
		return false; 
	} 
}


