
function move_options(_source_id, _target_id, _move_all){
	_target = document.getElementById(_target_id);
	_source = document.getElementById(_source_id);
	for(var i=0; i<_source.options.length; i++){
		if(_source.options[i].selected || _move_all){
			var _option = document.createElement('option');
			_option.text = _source.options[i].text;
			_option.value = _source.options[i].value;
			_target.options.add(_option);
		}
	}
	for(i=_source.options.length-1; i>=0; i--){
		if(_source.options[i].selected || _move_all){
			_source.remove(i);
		}
	}
}

function selecet_all_options(_select_id){
	_selector = document.getElementById(_select_id);
	for(var i=0; i<_selector.options.length; i++){
		_selector.options[i].selected = true;
	}
}

function markAllRows( container_id ) {
    var rows = document.getElementById(container_id).getElementsByTagName('tr');
    var checkbox;

    for ( var i = 0; i < rows.length; i++ ) {

        checkbox = rows[i].getElementsByTagName( 'input' )[0];

        if ( checkbox && checkbox.type == 'checkbox' ) {
            if ( checkbox.disabled == false ) {
                checkbox.checked = true;
            }
        }
    }

    return true;
}

/**
 * marks all rows and selects its first checkbox inside the given element
 * the given element is usaly a table or a div containing the table or tables
 *
 * @param    container    DOM element
 */
function unMarkAllRows( container_id ) {
    var rows = document.getElementById(container_id).getElementsByTagName('tr');
    var checkbox;

    for ( var i = 0; i < rows.length; i++ ) {

        checkbox = rows[i].getElementsByTagName( 'input' )[0];

        if ( checkbox && checkbox.type == 'checkbox' ) {
            checkbox.checked = false;
        }
    }

    return true;
}

function createIdElement(type, id) {
  var element = null;
  // Try the IE way; this fails on standards-compliant browsers
  try {
    element = document.createElement('<'+type+' name="'+id+'">');
  } catch (e) {
  }
  if (!element || element.nodeName != type.toUpperCase()) {
    // Non-IE browser; use canonical method to create named element
    element = document.createElement(type);
    element.id = id;
  }
  return element;
}

function bg_image_cache() {
	var m = document.uniqueID /*IE*/
	&& document.compatMode /*>=IE6*/
	&& !window.XMLHttpRequest /*<=IE6*/
	&& document.execCommand ;
	try{
		if(!!m){
			m("BackgroundImageCache", false, true) /* = IE6 only */
			}
	}catch(oh){};
}
// Return a boolean value telling whether // the first argument is a string.

function isString(arguments) {
	if (typeof arguments[0] == 'string') return true;
	if (typeof arguments[0] == 'object') {
		var criterion = arguments[0].constructor.toString().match(/string/i);
		return (criterion != null);

	}
	return false;
}


/**
 * Mark all checkboxes inside given container element

 * @param container_id Conatiner ID
 * @return void
 */
function markAllCheckBoxes(container_id){
	var chks = document.getElementById(container_id).getElementsByTagName('input');
	for(var i=0; i<chks.length; i++){
		if(chks[i].type=='checkbox'){
			chks[i].checked = true;
		}
	}
}

/**
 * Unmark all checkboxes inside given container element

 * @param container_id Conatiner ID
 * @return void
 */
function unmarkAllCheckBoxes(container_id){
	var chks = document.getElementById(container_id).getElementsByTagName('input');
	for(var i=0; i<chks.length; i++){
		if(chks[i].type=='checkbox'){
			chks[i].checked = false;
		}
	}
}

/**
 * Create msg_box dinamically
 * @param error String or Array
 * @return void
 */
function create_msg_box(errors){
	var arguments = new Array();
	arguments[0] = errors;
	if (isString(arguments))errors = arguments;
	var errorsString = new String();
	for(var i=0; i < errors.length; i++) errorsString += errors[i]+'<br />';
	var msgboxElement = document.getElementById('main_error_div');
	var msgDivStr = '<div class="top">'+
						'<div id="content_div">'+
							'<div class="header">'+
								'Message'+
								'<button type="button" value="" onclick="document.getElementById(\'main_error_div\').style.display = \'none\'">'+
									'<img src="../images/msg_box/msgbox_x.gif" width="15" height="14" align="right"/>'+
								'</button>'+
							'</div>'+
							'<div class="content">'+
								'<p>'+errorsString+
								'</p>'+
								'<span>'+
									'<button type="button" class="sub_button brown" onclick="document.getElementById(\'main_error_div\').style.display = \'none\'">OK</button>'+
								'</span>'+
							'</div>'+
						'</div>'+
					'</div>'+
					'<div class="bottom"></div>';
	msgboxElement.style.display = 'block';
	msgboxElement.innerHTML = msgDivStr;
}

/**
 * disableRadio disable the input next to the radio button that is not selected
 * @param value String
 * @return void
 */
function disableRadio(radioButton){
  	var opositeValue = '';
  	if(radioButton.id.search('new') > -1) opositeValue = radioButton.name+'_existing';
  	else opositeValue = radioButton.name+'_new';
  	var nextnextSibling = radioButton.nextSibling.nextSibling;
  	if(nextnextSibling.tagName == "SELECT"){
  		if(nextnextSibling.options.length != 0){
  			nextnextSibling.disabled = false;
  			document.getElementById(opositeValue).nextSibling.nextSibling.disabled = true;
  		}
  	}
  	else{
  		nextnextSibling.disabled = false;
  		document.getElementById(opositeValue).nextSibling.nextSibling.disabled = true;
  	}

}

/**
 * getSelectedUser gets the users selected into an array and
 * @param error String or Array
 * @return void
 */
function getSelectedUser(){

	var user_list_form = document.getElementById('user_list_frm').getElementsByTagName('input');
	var users_array = new Array();
  	for(var i=0; i < user_list_form.length; i++){
  		if(user_list_form[i].checked == true) users_array.push(user_list_form[i].value);
	}
   	if (users_array.length == 0){
   		create_msg_box('you must select user first');
   		return false;
   	}
   	if (users_array.length > 1){
   		create_msg_box('you can select only 1 user to associate');
   		return false;
   	}
   	else{
   		document.getElementById('user_id').value = users_array[0];
   		return true;
   	}
   	return false;
}

/**
 * getSelectedUser gets the users selected into an array and
 * @param error String or Array
 * @return void
 */
function showAssocBox(value, active_id){
	if(value == active_id){
		document.getElementById('associate_account').style.display = 'block';
		document.getElementById('change_to_status').value = value;
	}
	else{
		document.getElementById('associate_account').style.display = 'none';
		document.getElementById('associate_account_content').innerHTML = '';
		document.getElementById('change_to_status').value = value;
		document.getElementById('user_list_frm').submit();
	}
}

function validate_form(){
	if(getSelectedUser() == true){
		var assoc_type = document.getElementById('assoc_type').value;
		switch(assoc_type){
			case '-1':	create_msg_box('you must choose association to the account');
	   					return false;
						break;
			case '1':		if (validateTrafficSourceForm()){
							if(confirm('Are you sure?')) return true;
						}
						break;
			case '2':		if (validateCampaignForm()){
							if(confirm('Are you sure?')) return true;
						}
						break;
			case '3':		if (validateSubCampaignForm()){
							if(confirm('Are you sure?')) return true;
						}
						break;
		}
	}
	return false;
}

function validateTrafficSourceForm(){
	if(document.getElementById('ts_state_existing').checked == true){
		if(document.getElementById('exist_traffic_sources_ua').value < 0){
			create_msg_box('You must choose existing Traffic source');
   			return false;
		}
	}
	else{
		if(document.getElementById('new_traffic_source').value == ''){
			create_msg_box('You must enter new Traffic source name');
   			return false;
		}
	}
	return true;
}

function validateCampaignForm(){
	if(document.getElementById('exist_traffic_sources').value > -1){
		if(document.getElementById('campaign_state_existing').checked == true){
			if(document.getElementById('existing_campaigns').value < 0){
				create_msg_box('You must choose existing Campaign');
	   			return false;
			}
		}
		else{
			if(document.getElementById('new_campaign').value == ''){
				create_msg_box('You must enter new Campaign name');
	   			return false;
			}
		}
	}
	else{
		create_msg_box('you must choose a parent traffic source for the campaign');
		return false;
	}
	return true;
}

function validateSubCampaignForm(){
	if(document.getElementById('exist_traffic_sources_sc').value > -1){
		if(document.getElementById('existing_campaigns_sc').value > -1){
			if(document.getElementById('sub_campaign_state_existing').checked == true){
				if(document.getElementById('existing_sub_campaigns').value < 0){
					create_msg_box('You must choose existing Sub Campaign');
		   			return false;
				}
			}
			else{
				if(document.getElementById('new_sub_campaign').value == ''){
					create_msg_box('You must enter new Sub Campaign name');
		   			return false;
				}
			}
		}
		else{
			create_msg_box('You must choose a parent campaign for the sub campaign');
			return false;
		}
	}
	else{
		create_msg_box('You must choose a parent traffic source for the campaign');
		return false;
	}
	return true;
}


function show_assoc_div(assocToShow){
	var divArray = new Array();
	divArray[0] = -1;
	divArray[1] = 1;
	divArray[2] = 2;
	divArray[3] = 3;
	for(var i=0; i < divArray.length; i++){
		if(assocToShow != -1 && divArray[i] == assocToShow){
			document.getElementById('assoc_type_'+divArray[i]).style.display = 'block';
		}
		else{
				if(divArray[i] != -1){
				document.getElementById('assoc_type_'+divArray[i]).style.display = 'none';
			 	}
		}
	}
}

function updateJSON(request, json, value, embedElement){
	var JSONobject;
	if(json == null){
		JSONobject = JSON.parse(request.responseText);
	}
	else{
		JSONobject = json;
	}
	if(embedElement == 'assoc_type')
	{
		switch(value)
		{
			case "1":	embedElement = 'exist_traffic_sources_ua';
						break;
			case "2":	embedElement = 'exist_traffic_sources';
						break;
			case "3":	embedElement = 'exist_traffic_sources_sc';
						break;
		}
	}
	var g_bIE = document.all ? true : false;
	var selectObj = document.getElementById(embedElement);
	for (i = selectObj.length; i > 0; i--) {
    	selectObj.removeChild(selectObj.options[i - 1]);
   	}
	if(JSONobject == null && request.responseText == ""){
		var newOpt = document.createElement('option');
		newOpt.value = "-1";
		newOpt.text = "Error";
		if (g_bIE) {
			selectObj.add(newOpt);
		} else {
			selectObj.add(newOpt, null);
		}
		create_msg_box('There was an error with current Campaign, Please report to dev Traffix source name and current Campaign name');
		return true;
	}
	for (var i = 0; i < JSONobject.length; i++) {
		var newOpt = document.createElement('option');
		newOpt.value = JSONobject[i][0];
		newOpt.text = JSONobject[i][1];
		if (g_bIE) {
			selectObj.add(newOpt);
		} else {
			selectObj.add(newOpt, null);
		}
	}

}



