var cvr_company = '' ;
// to C#/VB compatibility
var True = true ;
var False = false ;

function OnEnter() {
	return( event.keyCode == 13 ) ;
}

function FormatNumber( n, cc ) {
	var d = 10 * cc ;
	var r = Math.round(n*d)/d ;
	var v = r.toString() ;
	var i = v.indexOf( '.' ) ;
	if( i == -1 ) {
		i = v.indexOf( ',' ) ;
		if( i == -1 ) {
			i = v.length ;
			v += ',' ;
		}
	} else {
		v = v.replace( '.', ',' ) ;
	}
	var l = cc - ( v.length - i - 1 ) ;
	for( var j = 0 ; j < l ; j++ ) {
		v = v + '0' ;
	}
	return( v ) ;
}

function GetInteger( control_id, def_val ) {
	var ctrl = GetNamedElement( control_id ) ;
	if( ctrl != null ) {
		var i = parseInt( ctrl.value ) ;
		if( !isNaN( i ) ) {
			return( i ) ;
		}
	}
	return( def_val ) ;
}

function HtmlToText( v ) {
	if( v != null ) {
		return( v.replace( /<br>/gi, '\n' ) ) ;
	}
	return( '' ) ;
}

function GetMessage( msg_id ) {
	var ctrl = GetNamedElement( msg_id ) ;
	if( ctrl != null ) {
		return( HtmlToText( ctrl.innerHTML ) ) ;
	}
	return( '' ) ;
}

function GetSelectedRadio( control_id, def_value ) {
	var result = def_value ;
	var controls = document.getElementsByName( control_id ) ;
	for( var i = 0 ; i < controls.length ; i++ ) {
		var control = controls[ i ] ;
		if( control.checked ) {
			result = control.value ;
			break ;
		}
	}
	return( result ) ;
}

function TemplateExpand( templ ) {
	var result = '' ;
	var i ;
	var ch ;
	var start = -1 ;
	for( i = 0 ; i < templ.length ; i++ ) {
		ch = templ.charAt( i ) ;
		if( start != -1 ) {
			if( ch == '}' ) {
				var n = templ.substring( start + 1, i ) ;
				if( n.substring( 0, 5 ) == "this." ) {
					n = n.substring( 5 ) ;
				}
				var v = GetNamedElement( n ) ;
				if( v != null ) {
					v = v.value ;
				}
				result += v ;
				start = -1 ;
			} else if( ch == '{' ) {
				result += '{' ;
				start = -1 ;
			}
		} else {
			if( ch == '{' ) {
				start = i ;
			} else {
				result += ch ;
			}
		}
	}
	return( result ) ;
}

function VSCSM_Exec( control_id, cmd, params ) {
	m_FormHasChanges = false ;
	var c = GetNamedElement( 'cmd' ) ;
	c.name = 'cmd$' + control_id + '$' + cmd + '$' + params ;
	c.value = 'exec' ;
	document.forms[ 'main' ].submit() ;
}

function MDS_SaveNoDelivery( zipcode ) {
	var result = 0 ;
	window.status = 'Slar postnummer \''+ zipcode + '\' op i databasen. Vent venligst...' ;
	var xmlhttp = new ActiveXObject( 'Microsoft.XMLHTTP' ) ;
	xmlhttp.Open( 'GET', '/SaveNoDelivery.aspx?zipcode='+zipcode+'&rnd'+Math.random(), false ) ;
	xmlhttp.Send( '' ) ;
	if( xmlhttp.status == 200 ) {
		window.status = 'Done.' ;
	} else {
		window.status = 'Postnummeret kan ikke slas op i databasen (fejl pa server).' ;
		result = -1 ;
	}
	return( result ) ;
}

function MDS_LoadZipCode( control_id ) {
	var result = 0 ;
	var zipcode = document.getElementById( control_id ).value ;
	if( !VSCSM_IsEmpty( zipcode ) ) {
		window.status = 'Slar postnummer \''+ zipcode + '\' op i databasen. Vent venligst...' ;
		var xmlhttp = null ;
		if( window.XMLHttpRequest ) {
			xmlhttp = new XMLHttpRequest() ;
		} else if( window.ActiveXObject ) {
			xmlhttp = new ActiveXObject( 'Microsoft.XMLHTTP' ) ;
		}
		if( xmlhttp != null ) {
			xmlhttp.open( 'GET', '/CheckZipCode.aspx?zipcode='+zipcode+'&rnd'+Math.random(), false ) ;
			xmlhttp.send( '' ) ;
			if( xmlhttp.status == 200 ) {
				var n = xmlhttp.responseXML.documentElement ;
				if( n.getAttribute( "zipcode" ) != 'bad' ) {
					GetNamedElement( control_id ).value = n.getAttribute( "zipcode" ) ;
					GetNamedElement( control_id + '_DD' ).value = n.getAttribute( "delivery_day" ) ;
					GetNamedElement( control_id + '_NDD' ).value = n.getAttribute( "ndd" ) ;
					GetNamedElement( control_id + '_ID' ).value = n.getAttribute( "isdelivery" ) ;
					GetNamedElement( control_id + '_PS' ).value = n.getAttribute( "passed" ) ;
					if( window.navigator.appName == 'Netscape' ) {
						GetNamedElement( control_id + '_City' ).value = n.textContent ;
					} else {
						GetNamedElement( control_id + '_City' ).value = n.text ;
					}
					result = 1 ;
				} else {
					GetNamedElement( control_id + '_City' ).value = g_common_msg_no_city ;
					GetNamedElement( control_id + '_DD' ).value = '' ;
					GetNamedElement( control_id + '_NDD' ).value = '' ;
					GetNamedElement( control_id + '_ID' ).value = '' ;
					GetNamedElement( control_id + '_PS' ).value = '' ;
					
					result = 2 ;
				}
				window.status = 'Done.' ;
			} else {
				window.status = 'Postnummeret kan ikke slas op i databasen (fejl pa server).' ;
				result = -1 ;
			}
		} else {
			window.status = 'Your browser does not support this feature.' ;
			result = -1 ;
		}
	} else {
		GetNamedElement( control_id + '_City' ).value = '' ;
		GetNamedElement( control_id + '_DD' ).value = '' ;
		GetNamedElement( control_id + '_NDD' ).value = '' ;
		GetNamedElement( control_id + '_ID' ).value = '' ;
		GetNamedElement( control_id + '_PS' ).value = '' ;
	}
	return( result ) ;
}

function MDS_CheckZipCode( control_id ) {
	var result = MDS_LoadZipCode( control_id ) ;
	switch( result ) {
		default:
			VSCSM_SetError( control_id, '' ) ;
			break ;
		case 2:
			VSCSM_SetError( control_id, g_common_msg_invalid_zipcode ) ;
			break ;
		case -1 :
			break ;
	}
	return( result ) ;
}

function MDS_SendCommentsToServer( meal ) {
	var result = -1 ;
	var comments = GetNamedElement( 'meal_' + meal + '_Comment' ).value ;
	var rate = GetNamedElement( 'meal_' + meal + '_rating' ).value ;
	var meal_id = GetNamedElement( 'meal_' + meal + '_id' ).value ;
	var order_id = GetNamedElement( 'meal_' + meal + '_orderid' ).value ;
	window.status = 'Sender data til server...' ;
	var xmlhttp = null ;
	if( window.XMLHttpRequest ) {
		xmlhttp = new XMLHttpRequest() ;
	} else if( window.ActiveXObject ) {
		xmlhttp = new ActiveXObject( 'Microsoft.XMLHTTP' ) ;
	}
	if( xmlhttp != null ) {
		var qs = 'SetMealComment.aspx?meal_id='+meal_id+'&order_id='+order_id ;
		var bd = '<?xml version="1.0" encoding="UTF-8"?><request><comment>' + comments + '</comment><rate>' + rate + '</rate></request>' ;
		xmlhttp.open( 'POST', qs, false ) ;
		xmlhttp.setRequestHeader( 'Content-Type', 'text/xml' ) ;
		xmlhttp.setRequestHeader( 'Content-Encoding', 'UTF-8' ) ;
		xmlhttp.send( bd ) ;
		if( xmlhttp.status == 200 ) {
			var n = xmlhttp.responseXML.documentElement ;
			var e  = n.getAttribute( 'err' ) ;
			if( e != '0' ) {
				window.status = 'Ukendt fejl. Oplysningerne er ikke gemt.' ;
			}
			window.status = "Done." ;
		} else {
			window.status = 'Ukendt fejl. Oplysningerne er ikke gemt.' ;
		}
	} else {
		window.status = 'Your browser does not support this feature.' ;
	}
	return( result ) ;
}

function GetSiteHostAndPort() {
	if( g_site_port != 80 ) {
		return( g_site_host + ":" + g_site_port ) ;
	}
	return( g_site_host ) ;
}

function VSCSM_CheckForZipCode( control_id ) {
	if( GetNamedElement( control_id + '_ID' ).value == 'False' ) {
		var zipcode = GetNamedElement( control_id ).value ;
		var text = g_common_msg_no_delivery_zipcode.replace( '{ZipCode}', zipcode ) ;
		MDS_SaveNoDelivery( zipcode ) ;
		VSCSM_SetError( control_id, text ) ;
		return( false ) ;
	}
	return( true ) ;
}

function VSCSM_CheckRTForZipCode( control_id ) {
	if( !VSCSM_IsEmpty( GetNamedElement( control_id + '_PS' ).value ) ) {
		var zipcode = GetNamedElement( control_id ).value ;
		var text = g_common_msg_passed_for_zipcode.replace( '{ZipCode}', zipcode ) ;
		VSCSM_SetError( control_id, text ) ;
		return( false ) ;
	}
	return( true ) ;
}


///--------------------------------------------------------
function CheckCVR( cvr ) {
	window.status = 'Slar CVR-nummer op i databasen. Vent venligst...' ;
	cvr_company = "" ;
	var result = 0 ;

	var xmlhttp = null ;
	if( window.XMLHttpRequest ) {
		xmlhttp = new XMLHttpRequest() ;
	} else if( window.ActiveXObject ) {
		xmlhttp = new ActiveXObject( 'Microsoft.XMLHTTP' ) ;
	}

	if( xmlhttp != null ) {
		var discount = 0 ;
		var discount_freight = 0 ;

		xmlhttp.open( "GET", "CheckCVR.aspx?cvrcode="+cvr+'&rnd'+Math.random(), false ) ;
		xmlhttp.send( "" ) ;
		if( xmlhttp.status == 200 ) {
			var n = xmlhttp.responseXML.documentElement ;
			cvr_company = n.getAttribute( "company_name" ) ;
			if( cvr_company != '' ) {
				var dd = parseInt( n.getAttribute( "discount" ) ) ;
				if( dd == 0 ) {
					discount = 0 ;
					discount_freight = 100 ;
				} else if( dd != -1 ) {
					discount = dd ;
					discount_freight = 0 ;
				}
				
				var dcat = document.getElementById( 'DeliveryCompanyAddressesTable' ) ;
				var sel = GetNamedElement( 'CompanyAddressID' ).value ;
				var s = '<br/><table border="0" cellspacing="0" cellpadding="3" width="100%">' ;
				if( dcat != null ) {
					s += dcat.innerHTML ;
				} else {
					s += '<tr bgcolor="#E6AC00"><td width="1%"></td><td>ZipCode</td><td>City</td><td>Address</td></tr>' ;
				}
				var dca = document.getElementById( 'DeliveryCompanyAddresses' ) ;
				var list = n.childNodes ;
				var i ;
				for( i = 0 ; i < list.length ; i++ ) {
					var a = list[ i ] ;
					s += '<tr' ;
					if( ( i % 2 ) == 0 ) {
						s += ' bgcolor="#E5E5E5"' ;
					}
					s += '><td><input type="radio" name="CompanyAddressIDEx" id="CompanyAddressID_' + i + '" class="form_checkbox" value="'+ a.getAttribute( "addressid" ) + ':' + a.getAttribute( "zipcode" ) + ':' + a.getAttribute( "city" ) + ':' + a.getAttribute( "delivery_day" ) + ':' + a.getAttribute( "ndd" ) + '" onclick="PersonalDataPage_Update()"' ;
					if( sel == a.getAttribute( "addressid" ) ) {
						s += ' checked ' ;
					}
					s += '></td><td>' + a.getAttribute( "zipcode" ) + '</td><td>' + a.getAttribute( "city" ) + '</td><td>'+ a.text + '</td></tr>' ;
				}
				s += '</table>' ;
				dca.innerHTML = s ;
				dca.style.display = 'inline' ;
				if( VSCSM_IsEmpty( sel ) && list.length == 1 ) {
					document.getElementById( 'CompanyAddressID_0' ).checked = true ;
				}
				result = 1 ;
			}
			window.status = 'Done.' ;
		} else {
			window.status = 'CVR-nummeret kan ikke slas op i databasen (fejl pa server).' ;
		}
		GetNamedElement( 'CD_Discount' ).value = discount ;
		GetNamedElement( 'CD_DiscountFreight' ).value = discount_freight ;
	} else {
		window.status = 'Your browser does not support this feature.' ;
	}
	return( result ) ;
}

function CheckOrderStatus( order_id ) {
	// CheckOrderStatus
	window.status = 'Undersoger ordrestatus...' ;
	var xmlhttp = null ;
	if( window.XMLHttpRequest ) {
		xmlhttp = new XMLHttpRequest() ;
	} else if( window.ActiveXObject ) {
		xmlhttp = new ActiveXObject( 'Microsoft.XMLHTTP' ) ;
	}
	if( xmlhttp != null ) {
		xmlhttp.open( 'GET', g_dankort_url + '/' + GetSiteHostAndPort() + '/CheckOrderStatus.aspx?orderid='+order_id+'&rnd'+Math.random(), false ) ;
		xmlhttp.send( '' ) ;
		if( xmlhttp.status == 200 ) {
			var n = xmlhttp.responseXML.documentElement ;
			if( n != null ) {
				var d = n.getAttribute( 'completed' ) ;
				if( d == 'True' ) {
					document.location.reload() ;
				}
			}
		}
	}
	window.status = 'Done.' ;
}

function SetVisible( nm, vis ) {
	var el = document.getElementById( nm ) ;
	if( el != null ) {
		el.style.display = (vis?'inline':'none') ;
	}
}

var m_FormHasChanges = false ;

function VSCSM_FormDataChanged() {
	m_FormHasChanges = true ;
}

function VSCSM_IsFormDataChanged() {
	return( m_FormHasChanges ) ;
}

function VSCSM_DisableControl( ctrl_id ) {
	var ctrl = document.getElementById( ctrl_id ) ;
	if( ctrl == null ) {
		ctrl = GetNamedElement( ctrl_id ) ;
	}
	if( ctrl != null ) {
		ctrl.disabled = true ;
	}
}
